这里需求很简单,就是每隔一定时间让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/bashTOKEN="TokenIDOfBot"CHAT_ID="UserIDOrGroupID"SERVER_NAME="AnyStringToNameYourServer"cur_month_day=$(date +%Y%m%d)cd /if [ -d "/root" ]; thenrclone mkdir backup:ServerBackup/$SERVER_NAME/$cur_month_dayrclone mkdir backup:ServerBackup/$SERVER_NAME/$cur_month_day/redisrclone 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#!/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#!/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>&10 */24 * * * /root/backup.sh >/dev/null 2>&10 */24 * * * /root/backup.sh >/dev/null 2>&1
从现在开始,每隔24小时会自动运行一下备份脚本,备份成功后你的Telegram还会收到一个提醒消息。想象下过几个小时有一个小鸡向你汇报进度的场景 :)
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容