Blog 自动备份到 Telegram 教程
一、创建 Telegram 机器人
-
在 Telegram 中搜索:
@BotFather -
发送命令:
/newbot -
创建成功后,你会得到一个:
BOT_TOKEN -
打开你的机器人,点击「开始」或给它发送一句:
hi
二、获取你的 chat_id
- 在 VPS 中执行:
curl "https://api.telegram.org/bot<BOT_TOKEN>/getUpdates"
会收到含有CHAT_ID的信息
- 记录:
CHAT_ID = 123456789
三、编写备份脚本
-
假设:
Blog 目录:/var/www/blog
备份目录:/root/backup
-
创建脚本文件
nano /root/backup_blog.sh
- 写入内容
#!/bin/bash
BOT_TOKEN="你的BOT_TOKEN"
CHAT_ID="你的CHAT_ID"
BLOG_DIR="/var/www/blog"
BACKUP_DIR="/root/backup"
DATE=$(date +%Y-%m-%d)
FILE="$BACKUP_DIR/blog_backup_$DATE.tar.gz"
mkdir -p $BACKUP_DIR
# 打包 blog
tar -czf $FILE $BLOG_DIR
# 发送到 Telegram
curl -F "chat_id=$CHAT_ID" \
-F "document=@$FILE" \
"https://api.telegram.org/bot$BOT_TOKEN/sendDocument"
# 删除 3 天前的旧备份(可选)
find $BACKUP_DIR -type f -mtime +3 -delete
四、赋予脚本执行权限
chmod +x /root/backup_blog.sh
五、手动测试一次
/root/backup_blog.sh
如果成功,你会在 Telegram 收到一个压缩包
六、设置定时任务(每三天一次)
crontab -e
添加一行:
0 3 */3 * * /root/backup_blog.sh >> /root/backup.log 2>&1
含义: 每 3 天执行一次 每天凌晨 3 点执行 日志输出到 /root/backup.log
从网盘下载备份文件恢复备份可按如下操作:
curl -L -o pureblog.zip 下载地址
若无法修改记得进入程序目录给予权限
sudo chown -R www-data:www-data config content data
sudo chmod -R 755 config content data