文章目录[隐藏]
完成了服务器Dropbox的配置后,接下来要做的就是写个脚本打包上传备份。
上一个文章最后给的参考链接只能参考其绑定 Dropbox ,其脚本是不能用的,错误非常多,连密码都没,但愿没把你们忽悠了,哈哈^_^。 网上传来传去的脚本也是那一份,但换了API后,不少内容要删改了,下面经过我删改后的脚本。
第一个脚本是用来备份网站的数据和数据库的:(先修改相应的数据)
#!/bin/bash
#dropboxbackup.sh
BACKUP_SRC="/home/wwwroot/xxx" //你要备份的文件
BACKUP_DST="/home/www" //存放备份文件的地方
MYSQL_SERVER="127.0.0.1"
MYSQL_USER="root" // 数据库的用户名
MYSQL_PASS="123456789"// 数据库的密码
# Stop editing here
NOW=$(date +"%Y.%m.%d")
DESTFILE="$BACKUP_DST/$NOW.tar.gz"
# Backup files.
echo "Dumping datebases..."
/usr/local/mysql/bin/mysqldump -u $MYSQL_USER -h $MYSQL_SERVER -p$MYSQL_PASS --all-databases > "$BACKUP_DST/$NOW.sql"
echo "Packing files..."
tar --exclude $BACKUP_SRC/wp-content/cache -czf "$DESTFILE" $BACKUP_SRC "$BACKUP_DST/$NOW.sql" //这个多了一段“--exclude $BACKUP_SRC/wp-content/cache” 表示不要打包这个文件夹,如果你是全部文件都要打包的话,把这一段代码删去,变成 tar czf "$DESTFILE" $BACKUP_SRC "$BACKUP_DST/$NOW.sql"
sh dropbox_uploader.sh upload "$DESTFILE"
sh dropbox_uploader.sh delete $(date -d -60day +%Y.%m.%d).tar.gz
echo "Cleaning the backups..."
rm -f "$BACKUP_DST/$NOW.sql"
find $BACKUP_DST -mtime +30 -delete //每30天删除一次备份文件夹里的文件
第二个脚本是用来备份配置文件的,对于一个服务器维护人员来说,程序的配置文件相当重要啊!配置文件的位置是默认安装LNMP一键包的位置。
#!/bin/bash
#settingbackup.sh
tar czf /home/www/setting_$(date +"%Y%m%d").tar.gz /usr/local/nginx/conf /etc/ssh/sshd_config /usr/local/php/etc
sh dropbox_uploader.sh upload /home/www/setting.tar.gz
sh dropbox_uploader.sh delete setting_$(date -d -30day +%Y%m%d).tar.gz
find /home/www/setting_$(date -d -30day +%Y%m%d).tar.gz -delete
亲测两个脚本都是可用的哦!
1、你可以用命令:
vim dropboxbackup.sh
自建脚本,也可以把代码改好后上传到一个你会记得的地方。
2、运行两条命令:
chmod +x dropboxbackup.sh
chmod +x settingbackup.sh
赋予运行的权限。
3、加入Crontab 任务,定时备份
crontab -e
我的是这两条:
0 0 */10 * * /home/dropboxbackup.sh(注:每个月每隔10天备份一次,即1、11、21、31号)
0 0 */15 * * /home/settingbackup.sh(注:每个月每隔15天备份一次,即1、16号)
4、运行命令:
/sbin/service crond reload
5、把crontab放入开机启动程序
vi /etc/rc.d/rc.local
/sbin/service crond start
6、最后,测试一下,看看能不能运行:
Deleting 失败是因为我之前根本没有备份有文件。
有个 DONE 即表示大功告成!
相关链接:
夏日里的冻虾——《VPS数据自动备份到Dropbox》 (这是我搜到最好的备份脚本文章,很专业,对于我来说也有些繁琐,但至少看上去是没有错误的)
后记:一个星期前坑爹的VPS商告诉我系统丢失了很多系统文件只能Reload时,服务器最坏的情况也莫过于此了。我有半个小时都在捶胸顿足,意识到之前研究配置所做的改动都泡了,而自己做的很多小改动早就不得记了,所以说备份配置文件非常重要。而由于之前备份工作做得好,所以服务器得以在一天内给我非常顺利得恢复的,真的以为要搞很久的问题,当自己真正去Face时,发现其很快就给攻下。遇到困难的时候,如果心理上输了就是真的输了,还是顽强点吧。
继续右键了,估计这样你的网站再也不会怕资料丢失了。
右键? 的确不怕了。
右键到evernote里了…
如果你已经保存了的话,可能要做小修改,第二个脚本里面第一个”data”要改成“date”。
哼哼,俺是来批评你的。那天打电话的时候还和你说了脚本事情,结果你的就出错了。哼哼。 [洋葱头19]
代码应该是这个样纸滴:
忘了说了,这个是针对apache的,哈哈,是我自己的东西,其他的需要的话就自己改吧,为什么评论木有代码高亮?代码高亮? [洋葱头12]
代码高亮是要加代码
这东西的。我帮你改好了。
话说,我上个文章也没说它的脚本是对的,我只是让你们参考它的绑定API方法而已,哈哈。
我加了那个东东了,没生效。奇怪ing,哈哈,但是你的脚本里面有明显错误呢。date都写错了,哼哼。 [洋葱头19]
呃···· 看到了,改好了。
难得还有人认真看。 [洋葱头15]
这个是我写在notepad++上的草稿,Linux上运行的是我用vi写的。
我不会告诉你还有错误,”%Y%m%d”这个是木有引号的,嘻嘻。 [兔23]
这个是可以有也可以没有的吧,我第一个脚本里也有啊,运行都没有错误。
特意去运行了一下,一切很正常,之前那个加引号的,也用了大半年,没有出错。
哈哈,想错了,其实最后还是当作字符串处理了,所以有引号没引号是一样的,我的失误,嘎嘎
嗯,有了这样的脚本,就安全了。