自动备份网站到 FTP 并给压缩包加上密码

4,216次阅读
没有评论

共计 1128 个字符,预计需要花费 3 分钟才能阅读完成。

自动备份网站到 FTP 并给压缩包加上密码

网站出现意外,如服务器损坏,黑客攻击等,要想在最短的时间内恢复正常,最好的方法是使用备份的数据来恢复。

下面介绍在 Linux 系统下如何通过脚本 + 计划任务来完成服务器数据自动备份。

这个 shell script 的功能是把网站打包成 zip 传送到 ftp 的同时、给 zip 压缩包加上密码

用法很简单,将这个 shell script 加入到 cronjobs,例如我需要每日 3 点备份可以这样做:

crontab -e

在编辑状态下,加入如下行:

0 3 * * * /root/backup.sh 2>&1 | tee -a /root/backup.log

然后新建 /root 目录下的 backup.sh,完善如下内容后、把内容写入到 backup.sh:

#!/bin/bash
MYSQL_USER= 数据库账户
MYSQL_PASS= 数据库密码
FTP_USER= 备份空间的 FTP 账户
FTP_PASS= 备份空间的 FTP 密码
FTP_IP= 备份空间的 FTP 主机
FTP_backup= 备份在 FTP 的哪个目录
WEB_DATA= 需要备份的目录
ZIP_PASS= 压缩包密码

#定义数据库的名字和旧数据库的名字
DataBakName=Data_$(date +"%Y%m%d").zip
WebBakName=Web_$(date +%Y%m%d).zip
OldData=Data_$(date -d -7day +"%Y%m%d").zip
OldWeb=Web_$(date -d -7day +"%Y%m%d").zip

#删除本地 3 天前的数据
rm -rf /home/backup/Data_$(date -d -3day +"%Y%m%d").zip /home/backup/Web_$(date -d -3day +"%Y%m%d").zip
cd /home/backup

#导出数据库, 一个数据库一个压缩文件
for db in `/usr/local/mysql/bin/mysql -u$MYSQL_USER -p$MYSQL_PASS -B -N -e 'SHOW DATABASES' | xargs`; do
    (/usr/local/mysql/bin/mysqldump -u$MYSQL_USER -p$MYSQL_PASS ${db} | gzip -9 - > ${db}.sql.gz)
done

#压缩数据库文件为一个文件
zip -q -r -P $ZIP_PASS /home/backup/$DataBakName /home/backup/*.sql.gz
rm -rf /home/backup/*.sql.gz

#压缩网站数据
zip -q -r -P $ZIP_PASS /home/backup/$WebBakName $WEB_DATA

#上传到 FTP 空间, 删除 FTP 空间 7 天前的数据
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

信息部分填写例子如下:

MYSQL_USER=root
MYSQL_PASS=123465
FTP_USER=ftp
FTP_PASS=123456
FTP_IP=192.168.1.1
FTP_backup=/backup
WEB_DATA=/home/wwwroot
ZIP_PASS=123456

保存完记得给 backup.sh 加上权限(chmod +x /root/backup.sh)

正文完
 0
VPSWe
版权声明:本站原创文章,由 VPSWe 于2016-07-15发表,共计1128字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
验证码

VPSWe

文章搜索
最新评论
可惜可以装的太少了。而且暂时还不支持数据库数据的导入导出 计划中不知道什么时候可以实现(๑•̀ㅁ•́ฅ)
ZjzMisaka ZjzMisaka 最后有关返回值信息, 好像写的太死了例如a命令返回的是: net.ipv4.tcp_available_congestion_control = reno cubic bbrb命令返回的是: tcp_bbr 20480 1实际上应该返回带bbr的返回值就代表安装成功了. 另外谢谢大佬, 装了bbr以后速度简直起飞了~
Linux 下使用 vnStat 统计 VPS 流量 | P3terChan’s Blog – Log@X.X.B Linux 下使用 vnStat 统计 VPS 流量 | P3terChan’s Blog – Log@X.X.B […] vnstat教程:linux下很方便查看服务器带宽流量统计的命令 […]
VPSWe VPSWe 由于某些服务商的VPS 无法创建NAT 网络, 所以不支持用此方法开启BBR。
游客 游客 无法创建NAT网络怎么破?
许 好文。谢谢。已经按你的指引操作成功了。
w w centos6 X86上安装出错
逝水无痕 逝水无痕 不错,学习了!