最简单的每日自动备份网站及数据库到FTP脚本(完善版本)

很简单的每日自动备份网站及数据库到远程FTP目录的脚本,
本次更新增加了自动删除远程FTP目录上5天前备份文件的功能,
只保留5天之类的备份文件
#!/bin/sh
cd /root
#导出数据库
/usr/local/bin/mysqldump --opt --user=AAAAAA --password=****** --host=localhost AAAAAA > AAAAAA.sql
/usr/local/bin/mysqldump --opt --user=BBBBBB --password=****** --host=localhost BBBBBB > BBBBBB.sql
#打包文件
tar -zcvf AAAAAA.sql_$(date +%Y%m%d).tar.gz AAAAAA.sql
tar -zcvf AAAAAA_$(date +%Y%m%d).tar.gz /usr/local/www/nginx-dist/AAAAAA
tar -zcvf BBBBBB.sql_$(date +%Y%m%d).tar.gz BBBBBB.sql
tar -zcvf BBBBBB_$(date +%Y%m%d).tar.gz /usr/local/www/nginx-dist/BBBBBB
#删除FTP空间5天前备份&上传当前备份到FTP空间
ftp -v -n dedibackup-dc3.online.net << EOF
user sd-XXXXXX ******
type binary
delete AAAAAA.sql_$(date -v -5d +%Y%m%d).tar.gz
delete AAAAAA_$(date -v -5d +%Y%m%d).tar.gz
delete BBBBBB.sql_$(date -v -5d +%Y%m%d).tar.gz
delete BBBBBB_$(date -v -5d +%Y%m%d).tar.gz
put AAAAAA.sql_$(date +%Y%m%d).tar.gz
put AAAAAA_$(date +%Y%m%d).tar.gz
put BBBBBB.sql_$(date +%Y%m%d).tar.gz
put BBBBBB_$(date +%Y%m%d).tar.gz
bye
EOF
#删除本地文件
rm -rf *.tar.gz
rm -rf *.sql

将以上脚本按照您的VPS信息设定后,存为backup.sh,然后上传至VPS的root目录下。

注意:这段代码适用于FreeBSD,Linux系统请将$(date -v -5d +%Y%m%d)替换为$(date -d "5 day ago" +%Y%m%d)

给脚本赋予执行权限

chmod +x /root/backup.sh

用cron实现每日定时自动运行这个脚本

添加定时任务

crontab –e

添加以下任务

00 05 * * * /root/backup.sh

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注