CentOS定时备份MySQL数据库、定期删除备份文件

1.创建备份目录

# 创建备份目录
mkdir /home/momo/mysql/mysql_bak

# 进入mysql_bak目录
cd /home/momo/mysql/mysql_bak

2.编写备份脚本

# 创建 mysql_backup.sh 文件
touch mysql_backup.sh

# 赋予权限,如果不给予权限的话,该脚本是无法运行的
chmod 777 mysql_backup.sh

# 编辑脚本
vim mysql_backup.sh
# -------------------------以下为脚本内容,不包含本行-------------------------
#!/bin/sh
# mysql定时备份脚本,切记等号左右不能留空格
db_user="root"
db_pwd="123456"
db_name="momo_prod"
bak_dir="/home/momo/mysql/mysql_bak"
time="$(date +"%Y%m%d_%H%M%S")"
# 备份命令,文件名格式[momo_prod_20200120_163059.sql.gz];命令mysqldump需要绝对路径,否则crontab定时任务无法识别
/usr/bin/mysqldump -u$db_user  -p$db_pwd -h127.0.0.1 -P3306 $db_name | gzip > $bak_dir/${db_name}_$time.sql.gz
# 定期删除备份,-mtime +90 指删除90天之前的备份文件
find $bak_dir -name "$db_name*.sql.gz" -type f -mtime +90 -exec rm -rf {} \; > /dev/null 2>&1
# -------------------------以上为脚本内容,不包含本行-------------------------

# 测试脚本是否运行正常
./mysql_backup.sh

特别说明,脚本使用了数据库明文密码,存在一定安全隐患。

执行脚本服务器也会提醒:

Using a password on the command line interface can be insecure.
翻译:在命令行界面上使用密码是不安全的。

3.创建定时任务

# 执行命令
crontab  -e
# 按 insert 键进入编辑状态
0 4 * * * /home/momo/mysql/mysql_bak/mysql_backup.sh
# 保存并退出后显示 crontab: installing new crontab 时表示成功,文件自动保存在 /var/spool/cron/ 目录。

# 重启crondtab服务
service crond restart

# 查看定时任务
crontab -l

# 查看脚本执行日志
tail -f /var/log/cron

Crontab 语法格式

分 时 日 月 周 执行命令
第 1 列分钟 159,每分钟用 * 或者*/1表示,整点分钟数为0002 列小时 1230 表示 0 点)
第 3 列日 1314 列月 1125 列星期 060 表示星期天)
第 6 列要运行的命令
0 4 * * * /home/momo/mysql/mysql_bak/mysql_backup.sh,此命令表示在每天的凌晨四点执行一次脚本,可自行调整时间

momo科技生活博客

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值