Напишем скрипт, который будет создавать ежедневный архив файлов сайта с использованием сжатия, а также отправку уведомлений в Telegram.
Содержимое скрипта:
vi /root/daily_bak.sh
#!/bin/bash
DATE=`date +%d-%m-%Y`
DATA="/data/app"
BAKDIR="/srv/backup"
BAKFILE="newsite_com.tar.gz"
tar -cpvzf $BAKDIR/$BAKFILE-$DATE $DATA
if [ -e $BAKDIR/$BAKFILE-$DATE ];
then
echo "Backup completed successfully..."
curl --header 'Content-Type: application/json' --request 'POST' --data '{"chat_id":"123456789","text":"Backup completed successfully"}' "https://api.telegram.org/bot0123456789:AAGb32HeVmtUPYMLz0ikJ8X_NXTBXL3vKX9/sendMessage"
else
echo "Backup failed."
curl --header 'Content-Type: application/json' --request 'POST' --data '{"chat_id":"123456789","text":"Backup failed"}' "https://api.telegram.org/bot0123456789:AAGb32HeVmtUPYMLz0ikJ8X_NXTBXL3vKX9/sendMessage"
fi
где, 123456789 это id моего аккаунта. Чтобы его узнать, добавьте бота @my_id_bot и напишите ему /start.
bot0123456789:AAGb32HeVmtUPYMLz0ikJ8X_NXTBXL3vKX9 - слово bot и token бота. Пишется все вместе.
Делаем скрипт исполняемым:
chmod u+x /root/daily_bak.sh
Добавляем задание в запланировщик задач:
crontab -e
45 23 * * * /root/daily_bak.sh