rsync smb ssh

apt install rsync -y

SSH backup


#!/bin/bash

########################### Constants ###########################
#### Данные для подключения по SSH
    username=root
    server=pbs.mlp.pp.ua
    ssh_port=2222
    ssh_key=/root/.ssh/pbs_mlp_pp_ua.key
#Имя сетевого интерфейса и его IP
    ETH=eth0
# Сколько свежих каталогов оставить
    COUNT=15
# telegramm
    BOT_TOKEN="18045447450203:AAGEjU7HKEEGle1Zv2an5sVF49QxNxhw03w"
    CHAT_ID="33109821804"
# тескт сообщений
IP_local=$(ip -4 a | grep inet | grep $ETH |  awk '/inet/ {print $2}')
IP_global=$(curl 2ip.com.ua)

MESS="Проблема $0
LAN: $IP_local
WAN: $IP_global"

########################### Функции ###########################

# Rsync
fun_rsync () {
    ssh -p $ssh_port -i $ssh_key $username@$server ls ${target_directory}increment/ >/dev/null || \
    ssh -p $ssh_port -i $ssh_key $username@$server mkdir -p ${target_directory}increment/

    ssh -p $ssh_port -i $ssh_key $username@$server ls ${target_directory}current/ >/dev/null  ||  \
    ssh -p $ssh_port -i $ssh_key $username@$server mkdir -p ${target_directory}current/

rsync -zav --progress --delete \
    -e "ssh -p \"$ssh_port\" -i \"$ssh_key\"" \
    "$local_directory" "$username@$server:$target_directory/current/" \
    --backup --backup-dir="${target_directory}/increment/$(date +%Y-%m-%d)/" \
    2>> /var/log/rsync_backup_error.log

# Удаляем старые каталоги в increment. Количество в переменной COUNT
 ssh -p $ssh_port -i $ssh_key $username@$server \
"ls -dt \"${target_directory}increment\"/*/ | tail -n +$((COUNT+1)) | xargs -d '\n' rm -rf --"
    }

#################  Локально #################################
local_directory=/root/backup_gdrive/
target_directory=/mnt/sli/GoogleDrive/
fun_rsync

################# для SMB  ################################
#GlBUG
local_directory=/mnt/glbuh/Base/
target_directory=/mnt/backup/Gl-Buh/

systemctl  start mnt-glbuh.mount && fun_rsync
systemctl  stop mnt-glbuh.mount