说明:此文介绍一种,每天自动备份网站以及数据库文件,发送EMAIL到邮箱,自动删除旧备份的方法。

提示

1、如果不需要使用邮件功能的可以跳过邮件组建安装步骤,需要的请看2
2、很多VPS商家会封闭邮件25端口,记得保持开启!发送邮件的大小和接收也与VPS商和接收的邮箱有关,数据库超过限制会发送失败。
3、FTP别使用要备份网站所在的VPS,不然就没多大意义了。

获得自动备份脚本

1、安装邮件发送依赖组件

yum install sendmail
yum install mailx

此方法用CentOS测试,Debian/Ubuntu使用apt-get安装。

2、获得备份脚本

wget https://down.hupsun.com/backup.sh

脚本编辑

1、创建备份文件夹

cd /home
mkdir back

2、修改backup.sh相关信息
将脚本下载到本地修改好再上传或者直接通过WinSCP改都可以。

#!/bin/bash
# 进入到备份文件夹
cd /home/back
#压缩网站数据
tar zcvf web_$(date +"%Y%m%d").tar.gz 网站目录
# 导出数据库到备份文件夹内
mysqldump -uroot -p数据库密码 数据库名称 > web_data_$(date +"%Y%m%d").sql
# 以附件形式发送数据库到指定邮箱
echo "Blog date"|mail -s "Backup$(date +%Y-%m-%d)" -a web_data_$(date +"%Y%m%d").sql 收件人邮箱
# 删除本地3天前的数据
rm -rf web_$(date -d -3day +"%Y%m%d").tar.gz web_data_$(date -d -3day +"%Y%m%d").sql
# 登录FTP
lftp ftp地址 -u ftp用户名,ftp密码 << EOF
# 进入FTP根目录
cd ftp根目录文件夹
# 删除3天前备份文件
mrm web_$(date -d -3day +"%Y%m%d").tar.gz
mrm web_data_$(date -d -3day +"%Y%m%d").sql
# 上传当天备份文件
mput web_$(date +"%Y%m%d").tar.gz
mput web_data_$(date -d -3day +"%Y%m%d").sql
bye
EOF

按脚本要求编辑网站路径,数据库密码,名称,FTP和邮箱即可。

3、测试备份是否正常

sh /root/backup.sh

测试过程中请不要关闭SSH,直到执行完毕,若没有问题,则继续。

定时执行,每日备份

1、赋予文件执行权限(755)

chmod +x /root/backup.sh

2、设定自动任务

crontab -e

SSH执行以上命令。

3、添加任务

00 00 * * * /root/backup.sh

按键盘字符:“i”,回车另起一行,添加以上代码,路径和时间请根据实际情况修改。
其中00 00为时间分/小时,可自行修改,例如:30 00 *,就是每天凌晨0:30运行这个脚本。

零基础的萌新搭建属于自己的Typecho/WordPress等博客教程

说明:一直以来老有同学问博主怎么搭建博客,最好出个教程,然后就拖到了现在,这里就发个超小白教程,适合对建站不懂又想拥有一个自己的博客的同学,有闲置...

阅读全文

一款开源免费且基于Laravel开发的在线点播系统:MeEdu搭建教程

说明:之前看有童鞋需要个点播系统,恰好就看到个不错的MeEdu,一个开源免费的在线点播,电子书和会员收费三大模块为一的整合系统,该系统主要的目的是让每位...

阅读全文

一款开源、轻巧且功能齐全的跨平台网盘程序:蓝眼云盘

说明:最近发现了一个不错的网盘程序蓝眼云盘,该程序后端使用golang开发,前端使用vue套件开发,而且开源免费,基本上目前除了离线下载外,其它功能都有,同...

阅读全文

欢迎留言