千家信息网

自动备份MySQL到FTP并定期清理过期备份的Shell脚本分享

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,这篇文章主要介绍"自动备份MySQL到FTP并定期清理过期备份的Shell脚本分享",在日常操作中,相信很多人在自动备份MySQL到FTP并定期清理过期备份的Shell脚本分享问题上存在疑惑,小编查阅
千家信息网最后更新 2026年11月04日自动备份MySQL到FTP并定期清理过期备份的Shell脚本分享

这篇文章主要介绍"自动备份MySQL到FTP并定期清理过期备份的Shell脚本分享",在日常操作中,相信很多人在自动备份MySQL到FTP并定期清理过期备份的Shell脚本分享问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"自动备份MySQL到FTP并定期清理过期备份的Shell脚本分享"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

代码如下:


date +%Y-%m-%d

那么,如果我们要得到1个月之前的日期怎么办呢?使用下面的这条命令就可以得到:

代码如下:


date -d last-month +%Y-%m-%d

怎么样?简单吧。实际备份的时候,因为之前脚本使用的是"m-d-Y"的形式,也就是"月-日-年"的形式,所以我稍微做了下调整。但是下面这个Shell脚本中的是按照"年-月-日"来产生文件名的。

于是,给出整个备份Shell脚本,需要的朋友只需要填写下有中文说明的部分,即可在自己的Linux服务器上使用。使用办法:复制到某个目录下,然后给予执行权限,再在cron中设置每天指定时间运行即可。(关于这部分,请自行查找相关说明,这里不再复述)

带自动清理功能的MySQL备份到FTP的Shell脚本如下:

代码如下:


#!/bin/bash

MyUSER="db_username" # 数据库用户名,建议使用root账户或者拥有全局权限的用户名
MyPASS="db_password" # 数据库密码
MyHOST="localhost" # 数据库服务器

# Linux bin paths, change this if it can't be autodetected via which command
MYSQL="$(which mysql)"
MYSQLDUMP="$(which mysqldump)"
CHOWN="$(which chown)"
CHMOD="$(which chmod)"
GZIP="$(which gzip)"

# 数据库备份的路径
DEST="/home/backup"

# Main directory where backup will be stored
MBD="$DEST/mysql"

# Get hostname
HOST="$(hostname)"

# Get data in dd-mm-yyyy format
NOW="$(date +%d-%m-%Y)"
OLD="$(date -d last-month +%d-%m-%Y)"

# File to store current backup file
FILE=""
# Store list of databases
DBS=""

# DO NOT BACKUP these databases
IGGY="test"

rm -rf $MBD

[ ! -d $MBD ] && mkdir -p $MBD || :

# Only root can access it!
$CHOWN 0.0 -R $DEST
$CHMOD 0600 $DEST

# Get all database list first
DBS="$($MYSQL -u $MyUSER -h $MyHOST -p$MyPASS -Bse 'show databases')"

cat > ftpcc.sh <cd $MBD
ftp -i -n<open blog.renhao.org #在这里填写FTP服务器的域名或IP
user ftp_user ftp_pass #在这里填写FTP用户名和密码,注意空格分隔
binary
mput *.gz
EOF

for db in $DBS
do
skipdb=-1
if [ "$IGGY" != "" ];
then
for i in $IGGY
do
[ "$db" = "$i" ] && skipdb=1 || :
done
fi

if [ "$skipdb" = "-1" ] ; then
FILE="$MBD/$db.$HOST.$NOW.gz"
echo "delete $db.$HOST.$OLD.gz" >> ftpcc.sh
# do all inone job in pipe,
# connect to mysql using mysqldump for select mysql database
# and pipe it out to gz file in backup dir :)
$MYSQLDUMP -u $MyUSER -h $MyHOST -p$MyPASS $db | $GZIP -9 > $FILE
fi
done

cat >> ftpcc.sh <close
bye
!
EOF

sh ftpcc.sh
rm ftpcc.sh

这样的Shell脚本运行后,可以得到每个MySQL库的独立备份文件,且以gz格式压缩以便节省空间。

到此,关于"自动备份MySQL到FTP并定期清理过期备份的Shell脚本分享"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

备份 脚本 数据 数据库 学习 代码 服务器 用户 用户名 服务 密码 形式 文件 更多 权限 帮助 运行 实用 接下来 下有 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网的科技 互联网科技公司华为 美国互联网保险保险科技 互联网科技有限公司经营范围 以房互联网科技 艾特科技互联网 互联网科技公司介绍 甘肃拓世互联网科技有限公司 哈尔滨秒房互联网科技有限公司 安控科技rtu产品工业互联网 随着互联网科技发展 昊天互联网科技有限公司 语蝶互联网科技有限公司 知域互联网科技有限公司大骗子 互联网新科技动漫ppt素材 沐思想互联网科技有限公司 35岁以上互联网科技行业 美国五大互联网科技公司市值多少 第三届互联网大会安防黑科技 前海云享互联网科技 科技互联网企业 互联网的科技 浩特互联网科技 创业天下互联网科技有限公司 深圳市罗太互联网科技有限公司 卓翼科技产业互联网合作 梅州GM互联网络科技有限公司 半导体行业属于互联网高科技类吗 三亚科技创新互联网基地 互联网对科技影响
0