FTP自动备份VPS脚本

服务器多了,网站也越来越多,总觉得不整个备份心里放不下心,并且有好几次rm的操作失误,造成难以挽回的损失。并且大多数的VPS提供商是不提供自动备份功能或者此功能收费价格略高。所以自己还是有必要把这个工作落实一下,说不定哪天就用到了。

使用的备份空间我自己是用的是Godaddy的Online Storage,优点在于,我的VPS都是美国服务商,选用Godaddy的空间传输速度比较有保证,另外最关键的价格也能接受,100G空间一年下来不到30美金,鉴于目前美金对人民币的汇率,这个价格我觉得已经相当优惠了。

脚本很简单,大家可以根据自己的需要修改相关内容,此处主要借鉴了Linux VPS自动备份:脚本上传FTP及RSYNC增量备份,我主要是针对debian系统稍微调整了一句,大家也可以参考一下。

#!/bin/bash
#你要修改的地方从这里开始
MYSQL_USER=root                    #mysql用户名
MYSQL_PASS=123456                  #mysql密码
MAIL_TO=admin@xxx.com              #数据库发送到的邮箱
FTP_USER=yonghuming                #ftp用户名
FTP_PASS=123456                    #ftp密码
FTP_IP=*.*.*.*                     #ftp地址
FTP_backup=/www/backup           #ftp上存放备份文件的目录,这个要自己得ftp上面建的
WEB_DATA=/home/wwwroot             #要备份的网站数据
#你要修改的地方从这里结束

#定义数据库的名字和旧数据库的名字
DataBakName=Data_$(date +"%Y%m%d").tar.gz
WebBakName=Web_$(date +%Y%m%d).tar.gz
OldData=Data_$(date -d -5day +"%Y%m%d").tar.gz
OldWeb=Web_$(date -d -5day +"%Y%m%d").tar.gz
#删除本地3天前的数据
rm -rf /home/backup/Data_$(date -d -3day +"%Y%m%d").tar.gz /home/backup/Web_$(date -d -3day +"%Y%m%d").tar.gz
cd /home/backup
#导出数据库,一个数据库一个压缩文件
for db in `mysql -u$MYSQL_USER -p$MYSQL_PASS -B -N -e 'SHOW DATABASES' | xargs`; do
    (mysqldump -u$MYSQL_USER -p$MYSQL_PASS ${db} | gzip -9 - > ${db}.sql.gz)
done
#压缩数据库文件为一个文件
tar zcf /home/backup/$DataBakName /home/backup/*.sql.gz
rm -rf /home/backup/*.sql.gz
#发送数据库到Email,如果数据库压缩后太大,请注释这行
#echo "主题:数据库备份" | mutt -a /home/backup/$DataBakName -s "内容:数据库备份" $MAIL_TO
#压缩网站数据
tar zcf /home/backup/$WebBakName $WEB_DATA
#上传到FTP空间,删除FTP空间5天前的数据
ftp -v -n $FTP_IP << END
user $FTP_USER $FTP_PASS
type binary
cd $FTP_backup
delete $OldData
delete $OldWeb
put $DataBakName
put $WebBakName
bye
END

 

需要注意的就是,备份目录/home/backup需要自己创建。然后在/root下创建这个AutoBackupToFtp.sh,并且赋予可执行权限

chmod +x /root/AutoBackupToFtp.sh

接下来为了能够定期自动备份,我们需要添加一个cron时钟任务

crontab –e

在文件最后添加下面一行

00 03 * * * /root/AutoBackupToFtp.sh

那个03就是凌晨3点,你可以根据自己网站访问情况自动调整,选择一个访问量比较小的时刻,不然如果网站文件过多,打包动作还是会给服务器造成一定的负担。

脚本下载:https://github.com/nonozone/TEMP/blob/master/AutoBackupToFtp.sh

Related Posts

  • SSH安装Wordpress指南 (0)
    本篇是紧接上篇基于Debian的VPS搭建LAMP指南之后,直接用SSH在VPS上安装wordpress过程。 下面还是直接在root账户下操作,不过建议各位可以新建一个普 […]
  • 阿加莎.克里斯蒂畅销精选集读后感 (1)
    在万宝龙的大文豪系列钢笔中,阿加莎绝对是一个最夺人眼球的一款。为纪念阿加莎克里斯蒂而推出的大文豪系列的设计沿袭了上个世纪20年代的典型风格。在泛着黑色光泽的珍贵树脂制成的笔帽上, […]
  • 外贸推广案例分析:如何回复买家询盘 (5)
    由于自己长期从事出口B2B相关领域,对目前外贸出口的状况,以及众多国内供应商在跟国外买家沟通中遇到的问题,以及可以有哪些解决办法,算是有一些个人的看法吧。今天我就跟大家分享一下, […]
  • 我在环球资源的那些日子销售架构篇 (4)
    好了,这篇是比较重要的内容,向大家分享环球资源的销售架构。 顺便提一下,同样是做销售,做业务,但是环球资源比较好的一点就是,不用应酬,不用陪客户吃饭,不用给客户送礼,不会给客户 […]
  • Magento侧栏显示产品分类方法 (0)
    这篇文章主要是介绍如何在Magento侧栏包括首页侧栏显示产品分类的方法。在安装好Magento以后,一般除了在网站导航栏显示产品分类以外,我们常用的方法是直接在首页侧栏显示产品 […]

Author:

One thought on “FTP自动备份VPS脚本”

发表评论

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

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