VPS脚本自动备份数据到Dropbox - AFF大佬 - 分享有价值的主机信息和服务器运维编程技术
当前位置: 主页 » 技术干货 » VPS脚本自动备份数据到Dropbox

VPS脚本自动备份数据到Dropbox

      2017年11月04日   阅读 575 次     6 评论   Tags: ·

UPDATE:2017/7/8:新增nginx配置文件和PHP配置文件备份
UPDATE:2017/7/17:解决重复备份问题
UPDATE:2017/11/4:新增删除一周前的备份文件。

第一步:登录VPS,安装dropbox客户端

32位系统
cd ~ && wget -O - "http://www.dropbox.com/download?plat=lnx.x86" | tar xzf -

64位系统
cd ~ && wget -O - "http://www.dropbox.com/download?plat=lnx.x86_64" | tar xzf -

完成后,会在用户根目录~下产生隐藏文件夹.dropbox-dist

[root@affdalao ~]# ls -a
.   .bash_history  .bash_profile  .cshrc         .local          .pki             shadowsocks.sh  .tcshrc
..  .bash_logout   .bashrc        .dropbox-dist  .mysql_history  shadowsocks.log  .ssh
[root@affdalao ~]# cd .dropbox-dist/
[root@affdalao .dropbox-dist]# ll
total 12
-rwxr-xr-x 1 clamav clamav  100 Apr  7 01:00 dropboxd
drwxr-xr-x 8 clamav clamav 4096 Apr  7 01:00 dropbox-lnx.x86_64-23.4.18
-rw-r--r-- 1 clamav clamav    7 Apr  7 01:00 VERSION
[root@affdalao .dropbox-dist]# ./dropboxd
This computer isn't linked to any Dropbox account...
Please visit https://www.dropbox.com/cli_link_nonce?nonce=XXXXXXXX (用浏览器访问此网址,绑定dropbox账号)to link this device.
(出现下面Welcome,说明绑定成功)
This computer is now linked to Dropbox. Welcome Jet Lee

用浏览器访问此网址,绑定dropbox账号

QQ截图20170612142744.jpg

第二步:运行完成后会在根目录下生成Dropbox目录,进入此目录建立软连接

[root@affdalao .dropbox-dist]# cd ..
[root@affdalao ~]# ll
total 76
drwx------ 3 root root  4096 Apr  8 12:50 Dropbox
-rw-r--r-- 1 root root 54429 Feb 19 22:17 shadowsocks.log
-rwxr-xr-x 1 root root 12637 Feb 19 22:14 shadowsocks.sh
[root@affdalao ~]# cd Dropbox/
[root@affdalao Dropbox]# ll
total 996
-rw-r--r-- 1 root root 1013655 Apr  8 12:19 Dropbox 使用入门.pdf
[root@affdalao Dropbox]# mkdir /home/lee/backup
[root@affdalao Dropbox]# ln -s /home/lee/backup
[root@affdalao Dropbox]# ll
total 996
lrwxrwxrwx 1 root root      16 Apr  8 12:52 backup -> /home/lee/backup
-rw-r--r-- 1 root root 1013655 Apr  8 12:19 Dropbox 使用入门.pdf

第三步:创建网站备份脚本,因为dropbox是双向备份同步(即:VPS删除数据,dropbox也会删除,dropbox删除数据,VPS也会删除数据),所以推荐把网站目录复制一份在同步。

[root@affdalao ~]# vi backup.sh 
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

#BY:Mr lile  Date:2017/4/8    version:1.0

#你的网站备份目录
BACKUP_SRC="/home/backup" 
#你的网站目录
BACKUP_WWW="/home/lee"
#当前日期
NOW=$(date +"%Y.%m.%d")    
#你的数据库地址    
MYSQL_SERVER="127.0.0.1" 
#你的数据库用户名    
MYSQL_USER="你的mysql用户名"      
#你的数据库密码    
MYSQL_PASS="你的数据库密码"    
#Nginx 配置文件地址
NGINX_CONF="/etc/nginx/nginx.conf"
NGINX_CONF1="/etc/nginx/conf.d"
#PHP配置文件
PHP_CONF="/usr/local/php/etc"

#取当前日期,1表示周一

#DAY=$(date +"%u") 

start() {

#dump数据库数据,以及备份网站整站文件

mysqldump -u $MYSQL_USER -h $MYSQL_SERVER -p$MYSQL_PASS 需要备份的数据库 > "$BACKUP_SRC/$NOW-Databases.sql"

#cp -r $BACKUP_WWW $BACKUP_SRC

#一周备份一次数据开启选项
#if [ "$DAY" -eq "7" ];
#then
tar Pcfz "$BACKUP_SRC/$NOW-affdalao.tgz" $BACKUP_WWW  $BACKUP_SRC/$NOW-Databases.sql $NGINX_CONF $NGINX_CONF1 $PHP_CONF
 
#删除一周前的备份文件
rm -rf $BACKUP_SRC/$(date -d -7day  +"%Y.%m.%d")-mrlile.tgz

#删除生成的mysql备份文件
rm -rf  $BACKUP_SRC/$NOW-Databases.sql

#fi
echo "starting dropbox"
/root/.dropbox-dist/dropboxd &
}

stop() {
echo "stoping dropbox"
pkill dropbox
}

restart() { 
stop 
sleep 1 
start 
}

case "$1" in 
start) 
$1 
;; 
stop) 
$1 
;; 
restart) 
$1 
;;
*) 
exit  
esac

第四步:然后数据就备份到dropbox了。

QQ截图20170408144226.png

PS:好久没写shell,都忘记了。

手动备份数据:

手动备份数据
sh backup.sh restart

开启数据备份
sh backup.sh start

关闭数据备份
sh backup.sh stop

定时数据备份
[root@affdalao ~]# crontab -l
30 0 * * * yum update -y --skip-broken &>/tmp/yum.log
1  3  * * * /usr/local/clamav/bin/freshclam 
30 3  * * *  /usr/local/clamav/bin/clamscan  --infected  -r /  --remove -l /var/log/clamscan.log
0 4 * * * sh /root/backup.sh restart  (每天4点备份数据)
0 5 * * * sh /root/backup.sh stop     (每天5点关闭数据备份)

UPDATE:2017/4/9,定时任务顺利进行

[root@affdalao ~]# ll Dropbox/backup/
总用量 59192
-rw-r--r-- 1 root root 21407812 4月   8 14:51 2017.04.08-affdalao.tgz
-rw-r--r-- 1 root root 39192385 4月   9 04:00 2017.04.09-affdalao.tgz

QQ截图20170409074427.png

  • 版权声明:本文版权归AFF大佬和原作者所有,未经许可不得转载。文章部分来源于网络仅代表作者看法,如有不同观点,欢迎进行交流。除非注明,文章均由 AFF大佬 整理发布,欢迎转载,转载请带版权。

  • 来源:AFF大佬 ( https://www.affdalao.com/ ),分享有价值的主机信息和服务器运维编程技术。
  • 链接:https://www.affdalao.com/56.html
  • 评论(6

    1. izteng说道:

      您好 自动脚本很好用。谢谢
      另外能不能加入自动删除10天或者30天以前的备份?

    发表评论

    电子邮件地址不会被公开。 必填项已用*标注