Linux脚本自动备份网站数据到Dropbox(下)

完成了服务器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、最后,测试一下,看看能不能运行:

dropbox1

 

dropbox2

Deleting 失败是因为我之前根本没有备份有文件。

有个 DONE 即表示大功告成

相关链接:

Linux脚本自动备份网站数据到Dropbox(上)

夏日里的冻虾——《VPS数据自动备份到Dropbox》 (这是我搜到最好的备份脚本文章,很专业,对于我来说也有些繁琐,但至少看上去是没有错误的)

后记:一个星期前坑爹的VPS商告诉我系统丢失了很多系统文件只能Reload时,服务器最坏的情况也莫过于此了。我有半个小时都在捶胸顿足,意识到之前研究配置所做的改动都泡了,而自己做的很多小改动早就不得记了,所以说备份配置文件非常重要。而由于之前备份工作做得好,所以服务器得以在一天内给我非常顺利得恢复的,真的以为要搞很久的问题,当自己真正去Face时,发现其很快就给攻下。遇到困难的时候,如果心理上输了就是真的输了,还是顽强点吧。

加入对话

15条评论

  1. 哼哼,俺是来批评你的。那天打电话的时候还和你说了脚本事情,结果你的就出错了。哼哼。 [洋葱头19]
    代码应该是这个样纸滴:

    echo " > Pack apache vsftp php config file.........." 
    tar zcvf setting_$(date +%Y%m%d).tar.gz /etc/httpd/conf/httpd.conf /etc/vsftpd/vsftpd.conf /etc/php.ini >setting.log
    echo " > Upload ziped config file to dropbox..........."
    sh dropbox_uploader.sh upload setting_$(date +%Y%m%d).tar.gz
    echo " > Delete previous config file before 30 days.........." 
    sh dropbox_uploader.sh delete setting_$(date -d -30day +%Y%m%d).tar.gz
    echo " > Delete local ziped file......" 
    find setting_$(date -d -30day +%Y%m%d).tar.gz  -delete
    rm -f setting.log
    echo " > All finished ,have a joy!"
    echo "###########################################################"
    
  2. 忘了说了,这个是针对apache的,哈哈,是我自己的东西,其他的需要的话就自己改吧,为什么评论木有代码高亮?代码高亮? [洋葱头12]

    1. 代码高亮是要加代码

      
      
      < /pre>

      这东西的。我帮你改好了。

      话说,我上个文章也没说它的脚本是对的,我只是让你们参考它的绑定API方法而已,哈哈。

      1. 我加了那个东东了,没生效。奇怪ing,哈哈,但是你的脚本里面有明显错误呢。date都写错了,哼哼。 [洋葱头19]

        1. 呃···· 看到了,改好了。
          难得还有人认真看。 [洋葱头15]
          这个是我写在notepad++上的草稿,Linux上运行的是我用vi写的。

留下评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据