apt install rsync -y
#!/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