千家信息网

CentOS中如何使用Shell脚本实现每天自动备份网站文件和数据库并上传到FTP中

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章主要讲解了"CentOS中如何使用Shell脚本实现每天自动备份网站文件和数据库并上传到FTP中",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"
千家信息网最后更新 2026年10月31日CentOS中如何使用Shell脚本实现每天自动备份网站文件和数据库并上传到FTP中

这篇文章主要讲解了"CentOS中如何使用Shell脚本实现每天自动备份网站文件和数据库并上传到FTP中",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"CentOS中如何使用Shell脚本实现每天自动备份网站文件和数据库并上传到FTP中"吧!

一、安装Email发送程序

代码如下:

yum install sendmail mutt

二、安装FTP客户端程序

本脚本需要用到FTP客户端程序将文件上传到FTP空间上面,因此必须安装FTP客户端,否则将出现ftp命令无法找到的错误。
安装步骤请参考:《CentOS提示ftp:command not found》

三、在/root目录下新建脚本文件:AutoBackupToFtp.sh,内容如下:

代码如下:

#!/bin/bash
#你要修改的地方从这里开始
MYSQL_USER=root #mysql用户名
MYSQL_PASS=123456 #mysql密码
MAIL_TO=xxxxx@gmail.com #数据库发送到的邮箱
FTP_USER=ftpuser #ftp用户名
FTP_PASS=ftpuserpassword #ftp密码
FTP_IP=xxx.xxx.xxx.xxx #ftp地址
FTP_backup=backup #ftp上存放备份文件的目录,这个要自己得ftp上面建的
WEB_DATA=/home/wwwroot #要备份的网站数据,如果是使用lnmp安装包,则默认这个为网站目录
#你要修改的地方从这里结束

#定义数据库的名字和旧数据库的名字
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 `/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
#压缩数据库文件为一个文件
tar zcf /home/backup/$DataBakName /home/backup/*.sql.gz
rm -rf /home/backup/*.sql.gz
#发送数据库到Email,如果数据库压缩后太大,请注释这行
echo "Content:This email is auto send by vps..." | mutt -a /home/backup/$DataBakName -s "Subject:VPS Database Backup" $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

四、配置

给脚本添加执行权限:

代码如下:

chmod 774 /root/AutoBackupToFtp.sh

利用系统crontab实现每天自动运行:

代码如下:


crontab -e

输入以下内容:

代码如下:

00 02 * * * /root/AutoBackupToFtp.sh

感谢各位的阅读,以上就是"CentOS中如何使用Shell脚本实现每天自动备份网站文件和数据库并上传到FTP中"的内容了,经过本文的学习后,相信大家对CentOS中如何使用Shell脚本实现每天自动备份网站文件和数据库并上传到FTP中这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

数据 数据库 文件 网站 脚本 备份 代码 内容 客户 客户端 目录 程序 空间 学习 名字 地方 密码 用户 用户名 命令 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 重生之互联网科技帝国 互联网科技股票 北京禾田雨橡互联网科技 互联网金融 科技创新 一五八零互联网科技 互联网科技创新服务 岳阳华臻互联网科技有限公司 深圳育鹏互联网科技有限公司招聘 朱啸虎曾投资哪些互联网科技企业 广东工业互联网大赛深圳学泰科技 上海互联网科技公司ppt 互联网科技包装股份有限公司上市 扫呗互联网科技有限公司 互联网科技平台产品运营 互联网科技新闻 银川新华互联网科技学校原画 长沙易易互联网科技有限公司 现代科技的标志之一的互联网 利用互联网等科技手段 科技发展第三阶段互联网时代 互联网与科技 湖南永感互联网科技有限公司 盈实互联网科技 科技互联网技术 米客互联网科技 互联网 视角下的科技创新 滨湖区互联网智能科技产品供应 互联网科技研发水平 山东星卡互联网科技有限公司官网 广州千川互联网科技有限公司
0