Linux 服务器备份到阿里云盘
阿里云盘没有官方 Linux 客户端,主流两套方案:
- aliyunpan(第三方命令行,推荐,简单,无需 WebDAV 中间服务)
alist/aliyundrive‑webdav + rclone,适合高级同步 / 挂载磁盘
方案一:aliyunpan 命令行(最适合服务器定时备份)
1. 安装
# 一键安装
curl -s https://raw.githubusercontent.com/tickstep/aliyunpan/main/install.sh | sudo bash
2. 登录阿里云盘
aliyunpan login
输出二维码链接,浏览器打开扫码登录,完成授权。
3. 手动备份示例
- 把本地
/data/backup上传到阿里云盘/服务器备份/主机A
aliyunpan sync start -ldir "/data/backup" -pdir "/服务器备份/主机A" -mode upload
-mode upload:只上传本地新增变更,不会删除云盘旧文件,适合备份;不要用 sync 双向同步。
4. 完整备份脚本(压缩打包再上传,生产直接抄)
新建 /opt/backup_aliyun.sh
#!/bin/bash
DATE=$(date +%Y%m%d_%H%M)
# 本地要备份目录
BK_SRC="/www"
# 本地临时压缩包存放
BK_TMP="/tmp/backup_${DATE}.tar.gz"
LOG="/var/log/aliyun_backup.log"
echo "===== ${DATE} 开始备份 =====" >> $LOG
# 打包压缩
tar -zcf ${BK_TMP} ${BK_SRC} --exclude=/www/tmp --exclude=/www/cache
# 上传到阿里云盘根目录 /linux_backup
aliyunpan upload ${BK_TMP} /linux_backup/ >> $LOG 2>&1
# 删除本地临时包
rm -f ${BK_TMP}
echo "===== ${DATE} 备份结束 =====" >> $LOG
赋权:
chmod +x /opt/backup_aliyun.sh
测试运行:
/opt/backup_aliyun.sh
5.crontab 定时,每天凌晨 2 点执行
crontab -e
#添加
0 2 * * * /opt/backup_aliyun.sh
日志查看:tail -f /var/log/aliyun_backup.log
方案二:alist + rclone(适合增量同步、挂载网盘为本地磁盘)
alist 运行在本机,获取阿里云盘 token,对外提供 WebDAV 接口,rclone 对接 webdav 做同步
- docker 部署 alist,登录 alist 后台添加阿里云盘,拿到 refresh_token
- rclone config 新建远程,类型
webdav,地址http://127.0.0.1:5244/dav,填写 alist 账号密码 - 同步命令
# 增量同步,本地目录→阿里云盘
rclone sync /data aliyun:/linux_backup --progress
⚠️注意:rclone sync会删除云盘上本地不存在的文件,做备份建议用rclone copy,不要 sync。
重要风险提醒
- 第三方工具依赖阿里云盘网页 API,阿里云策略变更可能导致失效,重要数据不能只依赖阿里云盘一份备份。
- 大文件、大量小文件上传会有限速,服务器带宽小不要高峰期跑备份。
- 脚本打包 MySQL 数据库:需要先
mysqldump导出 sql 再打包,不要直接备份 data 目录。
MySQL 数据库备份片段加到脚本里
mysqldump -uroot -p'你的密码' --all-databases > /tmp/mysql_${DATE}.sql
最新打赏