利用Dropbox自动备份WordPress
前一段时间自己的VPS不知道什么情况,出现了文件系统损坏的问题,一大批web发布目录下的文件变成了意义不明的二进制文件或者svn的元文件,到现在也还不知道到底被害范围有多大,于是觉得自己有必要把博客的备份变成常态,并且决定把备份文件同步到Dropbox上。
首先写了一个shell脚本用crontab每天运行以确保每天的数据库都没有问题,脚本依然很简单:
#!/bin/bash #uncomment this for debug #set -x host='YOUR_MYSQL_HOST' user='YOUR_MYSQL_USER' pass='YOUR_MYSQL_PASSWORD' dbs=('YOUR_MYSQL_DB_ONE' 'YOUR_MYSQL_DB_TWO' 'YOUR_MYSQL_DB_ANOTHER') dir='/data/mysql_backup' todaydir="$dir/`date +%Y%m%d`" mkdir -p $todaydir for db in ${dbs[@]}; do mysqldump --add-drop-database -u"$user" -p"$pass" -h"$host" -B $db > "$todaydir/$db.dump.sql" done #remove directories modified 15 days ago find "$dir" -mindepth 1 -maxdepth 1 -type d -mtime +15 -exec rm -rf {} ;
然后把它加入crond每天晚上23:55时运行,利用crontab -e加入新行:
55 23 * * * /opt/scripts/db_backup.sh
接下去是安装Dropbox,安装方式可以在官网 https://www.dropbox.com/install 找到,可以看到那里提供了deb包,不过对于CLI来说,使用那个命令行方式的安装更加合适(这样不需要python-gtk2的依赖)。那么执行官网上给出的一条命令:
cd ~ && wget -O - "https://www.dropbox.com/download?plat=lnx.x86_64" | tar xzf -
过了一会儿后应该已经可以在自己的home目录下面找到.dropbox-dist了(注意”.”,是隐藏的~),进入~dropbox-dist,执 行./dropboxd,会给你一个链接,让你去那个链接的页面上完成Dropbox的绑定操作。操作完成后可以先按ctrl + c暂时先终止程序。然后去官网下载一个python脚本 https://www.dropbox.com/download?dl=packages/dropbox.py 放到自己的PATH路径(例如/usr/local/bin)下面,这个就是之后操作dropbox服务的一个控制程序了,然后运行
chmod +x dropbox.py dropbox.py start
即可开始服务。
接下去的事情就好办多了,只要在你自己的home目录的Dropbox下面放一个上面备份SQL目录的符号链接,自己的数据库就会被自动备份到 Dropbox上面去了,然后可以把你自己的WordPress的wp-content目录也一起通过符号链接的形式备份起来,这样的话如果真的发生服务 器崩溃的问题,也可以拿到自己在上面的所有数据(当然,也可以在这个里面放任何你希望在服务器上备份到云端的数据)
cd ~/Dropbox ln -s /data/mysql_backup ln -s /YOUR_WORDPRESS_DIR_ROOT/wp-content
后来网上搜索了一下相关的文章,发现WordPress本身也有一个插件可以自动帮你同步到Dropbox,不过那个看起来并非在下的美学,适用范围也比较有限,所以哥还是玩自己的~
最后,我的Dropbox邀请链接,欢迎大家通过此链接注册Dropbox: http://db.tt/oeGwG4oQ = 。 =