一、登录Dropbox并创建一个APP

如果你还没有注册Dropbox,可以通过这个地址注册:https://www.dropbox.com/register

登录之后,通过这个地址创建Dropbox APP:https://www.dropbox.com/developers/apps

点击Create an app创建一个APP,填写相关信息之后,选择Full Dropbox之后点击Create创建。记住得到的App key和App secret,接下来会用到。

二、下载Dropbox-Uploader

下载地址:https://github.com/andreafabrizi/Dropbox-Uploader

下载之后上传至VPS的root目录。

三、使用命令直接下载赋予执行权限并绑定Dropbox APP

curl "https://raw.github.com/andreafabrizi/Dropbox-Uploader/master/dropbox_uploader.sh" -o dropbox_uploader.sh
chmod +x dropbox_uploader.sh //设置权限
sh dropbox_uploader.sh //绑定APP

按提示分别输入App key和App secret,然后输入 Y 确认;

之后会出现如下画面:

dropbox

复制图中的链接在浏览器中打开,并点击Allow绑定APP,然后回到Xshell按Enter。

之后可以执行下面的命令测试上传,提示Done就是绑定成功了。

./dropbox_uploader.sh upload /etc/passwd /backup/passwd.old

四、添加自动备份脚本

在Xshell中执行:

nano backup.sh

适当修改以下内容后,复制粘贴进去

#!/bin/bash
 
# Author: Jalena
# Website: http://jalena.bcsytv.com/archives/1099
 
# 常规定义
MYSQL_USER="1111"
MYSQL_PASS="1111"
DROPBOX_DIR="/backup/$(date +%Y-%m-%d)"
SPLIT="split"
BACK_DIR="backup"
 
# 备份网站数据目录
NGINX_DATA="/usr/local/nginx/conf/vhost"
BACKUP_BLOG="/home/wwwroot/blog"
BACKUP_DEFAULT="/home/wwwroot/default"
BACKUP_JOOMLA="/home/wwwroot/joomla"
 
# 定义备份文件名
mysql_DATA=mysql_$(date +"%Y%m%d").tar.gz
www_BLOG=blog_$(date +%Y%m%d).tar.gz
www_DEFAULT=default_$(date +%Y%m%d).tar.gz
split=split_default_$(date +%Y%m%d).tar.gz.
www_JOOMLA=joomla_$(date +%Y%m%d).tar.gz
nginx_CONFIG=nginx_$(date +%Y%m%d).tar.gz
 
# 定义Dropbox远程文件夹(3天删除一次)
Old_DROPBOX_DIR=/backup/$(date -d -3day +%Y-%m-%d)
 
# 判断本地备份目录,不存在则创建
if [ ! -d $BACK_DIR ] ;
then
mkdir -p "$BACK_DIR"
fi
 
# 进入备份目录
cd $BACK_DIR
 
# 备份所有数据库
# 导出需要备份的数据库,清除不需要备份的库
mysql -u$MYSQL_USER -p$MYSQL_PASS -B -N -e 'SHOW DATABASES' > databases.db
sed -i '/performance_schema/d' databases.db
sed -i '/information_schema/d' databases.db
sed -i '/mysql/d' databases.db
 
for db in $(cat databases.db)
do
mysqldump -u$MYSQL_USER -p$MYSQL_PASS ${db} | gzip -9 - > ${db}.sql.gz
done
 
# 打包数据库
tar -zcvf $mysql_DATA *.sql.gz
 
# 打包本地网站数据
tar -zcvf $www_BLOG $BACKUP_BLOG
tar -zcvf $www_DEFAULT $BACKUP_DEFAULT
 
# 分包压缩为单个包100M
split -d -b 100m $www_DEFAULT $split
 
# 打包Nginx配置文件
tar -zcvf $nginx_CONFIG $NGINX_DATA/*.conf
 
# upload
cd ~
./dropbox_uploader.sh upload $BACK_DIR/$nginx_CONFIG $DROPBOX_DIR/$nginx_CONFIG
./dropbox_uploader.sh upload $BACK_DIR/$mysql_DATA $DROPBOX_DIR/$mysql_DATA
./dropbox_uploader.sh upload $BACK_DIR/$www_BLOG $DROPBOX_DIR/$www_BLOG
 
for file in $(find $BACK_DIR/split* | grep $)
do
sh dropbox_uploader.sh upload $file $DROPBOX_DIR/$SPLIT/$file
done
 
# Delete all local backup
rm -rf $BACK_DIR
 
# Delete the file 3 days ago
./dropbox_uploader.sh delete $Old_DROPBOX_DIR/
 
# DropBox info
./dropbox_uploader.sh info
 
exit 0

按CTRL + O保存,CTRL + X 退出即可。

五、赋予脚本权限

在Xshell执行

chmod +x backup.sh

六、设置定时任务

crontab -e
00 03 * * * /root/backup.sh
crontab -l
service cron restart //重启Crontab

表示每天凌晨三点执行备份脚本。

如果你的VPS是nano编辑器(最上有nano字样),加入之后按Ctrl+O或F3并按Enter保存,然后按Ctrl+X或F2退出;

另一种是vi编辑器,需要先按i键进入编辑模式,在末尾输入上面的命令之后,按ESC键,输入:wq ,再按Enter保存并退出即可。

更多Crontab使用方法请看:http://www.vpser.net/manage/crontab.html

七、最后

重启之后就设置完成了……

如果你不知道服务器当前时间,可以使用下面的命令;

查看当前时间:

date -R

修改当前时区:

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

即修改服务器时区为上海。

分类: 服务器运维 标签: WordPress服务器

评论

暂无评论数据

暂无评论数据

目录