数据无价,且行且珍惜
你的每一个谨慎操作都有可能造成数据丢失甚至销毁
所以,及时备份很重要
所谓备份,就是将数据及时 copy 到其它地方进行存储,正所谓“鸡蛋不要放在一个篮子里”,数据存储也一样。
思路
- 每天定时进行对数据打包;
- 打包完成后发送电子邮件;
- 发送成功后将备份数据删除(主要考虑 空间容量问题);
数据打包备份,需要编写脚本,然后做定时任务
#!/usr/bin/bash
# mail 发送中文邮件会有乱码情况,特别是调用脚本的时候
# 加上这两行代码,可以有效解决 中文乱码问题
export LANG="zh_CN.UTF-8"
export LC_ALL="zh_CN.UTF-8"
# 这是一个网站数据打包备份脚本
# 脚本中涉及到的目录请根据自己环境进行修改:如 PHP目录、Nginx目录、web目录等
dtime=$(date "+%Y")
# 准备需要备份的文件
function webBack(){
# 备份 PHP 配置文件,如果不需要可忽略
cp -r /usr/local/php/etc /usr/local/nginx/html/
# 备份 Nginx 配置文件,如果不需要可忽略了
cp -r /usr/local/nginx/conf /usr/local/nginx/html/
# 备份数据库,这里假定 数据名称为 typecho
mysqldump -u typecho -pAb123456 --databases typecho > /usr/local/nginx/html/webDB_$dtime.sql
# 打包数据
tar -czf /usr/local/nginx/webBack_$dtime.tar.gz -C /usr/local/nginx/html .
}
# 发送电子邮件,这里涉及代发邮件问题,需要配置相关的mail
function sendmail(){
echo "$dtime: 网站数据备份" | mail -s "$dtime: 网站数据备份" -a /usr/local/nginx/webBack_$dtime.tar.gz databack@qq.com
}
# 开始打包备份、发送邮件、删除备份文件
webBack && sendmail && rm -rf /usr/local/nginx/webBack_$dtime.tar.gz
rm -rf /usr/local/nginx/html/webDB_$dtime.sql
rm -rf /usr/local/nginx/html/conf
rm -rf /usr/local/nginx/html/etc
mail 发送邮件配置
如果没有 mail 命里,请进行安装
# Redhat 系列 yum install -y mail # Debian 系列 apt-get install mail
配置mail
vim /etc/mail.rc
增加如下代码# 发件人地址 set from=xxxx@126.com # smtp 服务器,也就是邮件服务商 set smtp=smtp.126.com # 邮件真实账号 set smtp-auth-user=xx@126.com # 登陆密码,有些服务商会要求填写授权码 set smtp-auth-password=xxx set smtp-auth=login
定时任务配置
[root@VM-0-17-centos ~]# crontab -e
# 添加如下计划任务,脚本路径建议写绝对路径
# 每天 凌晨 3:00 执行一次脚本
0 3 * * * /usr/bin/bash /usr/local/nginx/web_back.sh
还不快抢沙发