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