每年黑五都要买几个小鸡,然后为了不让小鸡吃灰呢,又给他们找了各自的小程序让他们跑起来,什么探针啊,Telegram机器人啊。然后的然后带来的直接问题是这些程序(很多修改过)和数据库备份越来越耽误时间了!
这里需求很简单,就是每隔一定时间让VPS自动备份一下程序和数据库文件到Google Drive(反正Google Drive空间无限)。另外还要在Telegram上通知一下已经备份到位了,这样才心安。
Step 1. 准备工作
安装并配置Rclone;
从Telegram的@BotFather那里新建一个Bot,记录下TokenID;
从@GoogleVoiceComBot那里获得你自己的Telegram账号的ID。
Step 2. 新建脚本并赋予可执行权限
运行touch /root/ba ckup.sh && chmod +x /root/backup.sh && vim /root/backup.sh
输入以下内容
#!/bin/bash
TOKEN="TokenIDOfBot"
CHAT_ID="UserIDOrGroupID"
SERVER_NAME="AnyStringToNameYourServer"
cur_month_day=$(date +%Y%m%d)
cd /
if [ -d "/root" ]; then
rclone mkdir backup:ServerBackup/$SERVER_NAME/$cur_month_day
rclone mkdir backup:ServerBackup/$SERVER_NAME/$cur_month_day/redis
rclone copy -v --ignore-existing \
--exclude '.*' \
--exclude '/root/xiaomeng_tg_bot/ehForwarderBot' \
--exclude '.cache/**' \
--exclude 'result/' \
--exclude 'vultr6z/' \
root backup:ServerBackup/$SERVER_NAME/$cur_month_day >> ~/sycn2gdrive_$cur_month_day.log && \
curl "https://api.telegram.org/bot$TOKEN/sendMessage?chat_id=$CHAT_ID&text=Done:All@$SERVER_NAME"
rclone copy -v --ignore-existing \
/var/lib/redis backup:ServerBackup/$SERVER_NAME/$cur_month_day/redis >> ~/sycn2gdrive_$cur_month_day.log && \
curl "https://api.telegram.org/bot$TOKEN/sendMessage?chat_id=$CHAT_ID&text=Done:Redis@$SERVER_NAME" && \
echo " Done"
fi
填入TOKEN,CHAT_ID,SERVER_NAME,并将Rclone命令部分按需修改后保存好 :)
Step 3. 设置Crontab定时任务
输入crontab -e
后,新添
0 */24 * * * /root/backup.sh >/dev/null 2>&1
从现在开始,每隔24小时会自动运行一下备份脚本,备份成功后你的Telegram还会收到一个提醒消息。想象下过几个小时有一个小鸡向你汇报进度的场景 :)