- A+
所属分类:VPS教程
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 xxx
用浏览器访问此网址,绑定dropbox账号
第二步:运行完成后会在根目录下生成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/backup
[root@affdalao Dropbox]# ln -s /home/backup
[root@affdalao Dropbox]# ll
total 996
lrwxrwxrwx 1 root root 16 Apr 8 12:52 backup -> /home/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
#Date:2017/4/8 version:1.0
#你的网站备份目录
BACKUP_SRC="/home/backup"
#你的网站目录
BACKUP_WWW="/home/"
#当前日期
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")-affdalao.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了。
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
- 我的微信
- 这是我的微信扫一扫
- 我的微信公众号
- 我的微信公众号扫一扫