最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
vps中定时备份VPS数据至Dropbox教程
时间:2015-06-05 编辑:简简单单 来源:一聚教程网
客户端法备份数据
1、安装及配置dropbox linux客户端
在VPS上安装linux命令行版本的dropbox:
32-bit:
cd ~ && wget -O - "https://www.dropbox.com/download?plat=lnx.x86" | tar xzf -
64-bit:
cd ~ && wget -O - "https://www.dropbox.com/download?plat=lnx.x86_64" | tar xzf -
下载完成之后,运行dropbox
~/.dropbox-dist/dropboxd
第一次运行该命令,会提示访问URL,通过访问该URL就可以绑定VPS与dropbox账号。此时查看命令行,会提示绑定成功。
绑定之后,root目录下会自动创建名为Dropbox的文件夹,Dropbox会自动同步该文件夹内的文件。
2、使用dropbox linux客户端同步vps数据
我们一般备份网站数据及数据库数据,正常情况下网站WEB目录不在root文件夹下,我们可以通过软连接指向网站WEB目录,而数据库数据可以通过命令行导出,并通过软连接指向该文件。
为了方便区分目录,可以在Dropbox文件夹下新建backups文件夹,用于备份数据。
1)定时备份网站数据
将网站WEB目录连接到/Dropbox/backups文件夹下,假定/var/www/wordpress为网站web目录
cd ~/Dropbox/backups
ln -s /var/www/wordpress
2)定时备份数据库文件
新建一个定时备份数据库文件的脚本
vi ~/backup/mysqlbackup.sh
脚本内容如下:
echo "start mysql back up "${date} >> /root/backup/backup.log
mysqldump -uroot -p123456 wordpress >/root/backup/mysqlback.sql
其中,root为数据库的用户名,123456为数据库密码,wordpress为数据库名。
添加可执行权限
chmod a+x ~/backup/mysqlbackup.sh
将mysqlback.sql连接到/Dropbox/backups文件夹下
#!/bin/sh
cd ~/Dropbox/backups
ln -s ~/backup/mysqlback.sql
定时执行备份脚本文件,输入
crontab -e
添加以下内容
* 3 * * * /root/backup/mysqlbackup.sh
3)定时开闭dropbox linux客户端
dropbox一直开着会占用vps的内存资源,没有必要一直开着,可以利用脚本定时运行和关闭dropbox。
创建脚本 ~/backup/dropboxswitch.sh
vi ~/backup/dropboxswitch.sh
内容如下
#!/bin/sh
date=`date +%Y%m%d_%H:%M:%S`
start() {
echo "starting dropbox "${date} >> /root/backup/backup.log
/root/dropbox/.dropbox-dist/dropbox &
}
stop() {
echo "stoping dropbox "${date} >> /root/backup/backup.log
pkill dropbox
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
esac
添加可执行权限
chmod a+x ~/backup/dropboxswitch.sh
然后定时每天凌晨4点启动dropbox,6点关闭:
crontab -e
添加以下内容
* 4 * * * /root/backup/dropboxswitch.sh start
* 6 * * * /root/backup/dropboxswitc.sh stop
脚本法备份数据
1、创建Dropbox应用
首先,需要创建一个Dropbox应用,可以从该网址进行创建:https://www.dropbox.com/developers/apps/create。
在这里,应用类型选择Dropbox API App,数据存储类型选择Files and datastores,权限选择Yes(应用只需要访问它创建的文件)。然后命名创建。
2、下载并执行dropbox_uploader.sh
dropbox_uploader 是一个第三方Dropbox备份脚本,首先下载脚本:
wget --no-check-certificate https://raw.githubusercontent.com/tennfy/Dropbox-Uploader/master/dropbox_uploader.sh
chmod a+x dropbox_uploader.sh
执行该脚本,绑定APP:
./dropbox_uploader.sh
根据提示输入Dropbox应用中的App key和App secret,许可类型选择a,确认y,复制给出的权限验证链接到浏览器,确认后回到终端按任意键完成。
dropbox_uploader1
之后可以执行下面的命令测试上传,提示Done就是绑定成功了:
./dropbox_uploader.sh upload /etc/passwd /backup/passwd.old
3、编写定时脚本
vi /root/backup.sh
内容如下:
#!/bin/bash
MYSQL_USER=root #mysql用户名
MYSQL_PASS=xxxxx #mysql密码
MYSQL_DATABASENAME=xxxxx #要备份的数据库名
WEB_DATA=/var/www/xxx #要备份的网站数据
#你要修改的地方从这里结束
# 定义备份存放目录
DROPBOX_DIR=/$(date +%Y-%m-%d) # Dropbox上的备份目录
LOCAL_BAK_DIR=/root/backup # 本地备份文件存放目录
#定义备份文件名字
DBBakName=Data_$(date +"%Y%m%d").tar.gz
WebBakName=Web_$(date +"%Y%m%d").tar.gz
# 定义旧数据名称
Old_DROPBOX_DIR=/$(date -d -3day +%Y-%m-%d)
OldDBBakName=Data_$(date -d -3day +"%Y%m%d").tar.gz
OldWebBakName=Web_$(date -d -3day +"%Y%m%d").tar.gz
#删除本地3天前的数据
rm -rf $LOCAL_BAK_DIR/$OldDBBakName $LOCAL_BAK_DIR/$OldWebBakName
./dropbox_uploader.sh delete $Old_DROPBOX_DIR/
#导出mysql数据库
mysqldump -u$MYSQL_USER -p$MYSQL_PASS $MYSQL_DATABASENAME > $LOCAL_BAK_DIR/wordpress.sql
#压缩数据库
tar zcvf $LOCAL_BAK_DIR/$DBBakName $LOCAL_BAK_DIR/wordpress.sql
rm -rf $LOCAL_BAK_DIR/wordpress.sql
#压缩网站数据
tar zcvf $LOCAL_BAK_DIR/$WebBakName $WEB_DATA
#开始上传
cd ~
./dropbox_uploader.sh upload $LOCAL_BAK_DIR/$DBBakName $DROPBOX_DIR/$DBBakName
./dropbox_uploader.sh upload $LOCAL_BAK_DIR/$WebBakName $DROPBOX_DIR/$WebBakName
echo -e "Backup Done!"
其中,用户可以根据自己的需求改编需要备份的目录,以及保留旧数据的时长(我这里设置的是3天)
如果mysql是编译安装,需要指定mysql的路径。
增加执行权限:
chmod +x /root/backup.sh
测试该备份脚本:
./backup.sh
4.设置定时任务
执行:
crontab –e
添加以下内容:
30 3 * * * /root/backup.sh
这样,就可以每天凌晨3:30自动备份到Dropbox了。
5.最后重启Crontab
service cron restart
重启之后就设置完成了
如果你不知道服务器当前时间,可以使用下面的命令,查看当前时间:
date -R
修改为当前时区
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
即修改服务器时区为上海。
相关文章
- oppo r9怎么备份?oppo r9备份的数据在哪里? 01-13
- 怎么查看iTools 备份的数据 查看iTools 备份的数据方法 07-06
- 荣耀6 Plus怎么备份? 荣耀6 Plus备份数据资料教程 06-24
- TCL么么哒怎么备份 TCL么么哒如何备份我的数据 07-29
- win11内核隔离和内存完整性介绍 10-31
- win10全屏缩放设置教程 10-31