環境
- 第三方资源:Dropbox Uploader
- 系统环境:Ubuntu x64
操作步驟
- 在dropbox官方创建一个新的应用「 Dropbox API App」,获得APP key和APP secret
- 在终端上下载并执行本文开头所引用的第三方资源
1curl "https://raw.githubusercontent.com/andreafabrizi/Dropbox-Uploader/master/dropbox_uploader.sh" -o dropbox_uploader.sh
2sudo $chmod +x dropbox_uploader.sh
3sudo $./dropbox_uploader.sh
-
按照屏幕提示输入APP key和APP secret,许可权限类型选择a,确认后在浏览器中打开终端给出的token链接,完成验证
-
测试上传文件,提示done则成功
1sudo ./dropbox_uploader.sh upload yourfile
- 编写备份bash脚本,
sudo vi /root/backup.sh
,内容如下
1 #!/bin/bash
2 MYSQL_USER=xxxx #mysql用户名
3 MYSQL_PASS=xxxxx #mysql密码
4 WEB_DATA=/var/www #要备份的网站数据
5 # 定义备份存放目录
6 DROPBOX_DIR=/$(date +%Y-%m-%d) # Dropbox上的备份目录
7 LOCAL_BAK_DIR=/home/yourid/backup # 本地备份文件存放目录
8 #定义备份文件名字
9 DBBakName=Data_$(date +"%Y%m%d").tar.gz
10 WebBakName=Web_$(date +"%Y%m%d").tar.gz
11 # 定义旧数据名称
12 Old_DROPBOX_DIR=/$(date -d -30day +%Y-%m-%d)
13 OldDBBakName=Data_$(date -d -30day +"%Y%m%d").tar.gz
14 OldWebBakName=Web_$(date -d -30day +"%Y%m%d").tar.gz
15 #删除本地30天前的旧数据
16 rm -rf $LOCAL_BAK_DIR/$OldDBBakName $LOCAL_BAK_DIR/$OldWebBakName
17 ./dropbox_uploader.sh delete $Old_DROPBOX_DIR/
18 #导出mysql数据库
19 mysqldump -u$MYSQL_USER -p$MYSQL_PASS --all-databases > $LOCAL_BAK_DIR/db.sql
20 #压缩数据库
21 tar zcvf $LOCAL_BAK_DIR/$DBBakName $LOCAL_BAK_DIR/db.sql
22 rm -rf $LOCAL_BAK_DIR/db.sql
23 #压缩网站数据
24 tar zcvf $LOCAL_BAK_DIR/$WebBakName $WEB_DATA
25 #开始上传
26 cd ~
27 ./dropbox_uploader.sh upload $LOCAL_BAK_DIR/$DBBakName $DROPBOX_DIR/$DBBakName
28 ./dropbox_uploader.sh upload $LOCAL_BAK_DIR/$WebBakName $DROPBOX_DIR/$WebBakName
29 echo -e "Backup Done!"
- 增加执行权限,
sudo chmod +x /root/backup.sh
- 测试执行脚本,
sudo ./backup.sh
- 设置cron定时任务,
sudo crontab –e
,并且在文件中增加
145 4 1 * * /root/backup.sh #每月1日4点45分执行backup.sh文件
- 重启cron ,
sudo service cron restart