linux 运维 ----mysql定时备份步骤,使用crontab定时执行

参考网上资料,及自己的排坑,做一个记录,以后便于查找
1. linux服务器

cd /
mkdir /data/mysql-data-back

找个位置放脚本 本人放在 /home/java/ 这里的路径会在定时设置的时候使用
dump脚本:mysqldump.sh

#!/bin/sh
DB_USER="数据库账号"
DB_PASS="数据库密码"
DB_DATA_NAME="数据库名称"
BakDir="/data/mysql-data-back"
echo "/usr/bin/mysqldump"
echo "-------------------------------------------" >> $BakDir
echo $(date +"%y-%m-%d %H:%M:%S") >> $BakDir
  
cd $BakDir
/usr/bin/mysqldump --no-defaults -u$DB_USER -p$DB_PASS $DB_DATA_NAME|gzip > $BakDir/db_`date +%F`.gz
  
exit 0

删除脚本:delmysqlbak.sh

#!/bin/bash
year=`date +%Y`
month=`date +%m`
month=`expr $month - 1`
 if [ $month -eq 0 ];then
    month=12
    day=31
    year=`expr $year - 1`
 fi

 if [ $month -lt 10 ];then
    pre=0
 fi

backdir=/data/mysql-data-back/$year$pre$month
rm -rf $backdir                    #删除上一个月的数据

2.安装 crontab

 yum install -y vixie-cron 

注意百度上都是 yum install -y vixie-cron命令,但是本人没有成功,现象如下:

[root@ts-test-db java]#  yum install vixie-cron
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.ustc.edu.cn
No package vixie-cron available.
Error: Nothing to do

3.使用 yum install cronie 该命令
4.service crond start //启动
执行 crontab -l 出现:
在这里插入图片描述
解决:在 root 用户下输入 crontab -e按 Esc 按: wq 回车
原因: liunx服务器 第一次使用 crontab ,没有生成对应的文件导致的,执行了编辑(crontab -e)后 就生成了这个文件
相关 crontab 操作:

# service crond start  #启动
# service crond stop  #停止
# service crond start     //启动服务  
# service crond stop      //关闭服务  
# service crond restart   //重启服务  
# service crond reload    //重新载入配置  
# service crond status    //查看crontab服务状态  
# /etc/rc.d/init.d/crond restart  #重启
# /etc/rc.d/init.d/crond reload  #不中断服务,重新载入配置
# crontab -e  编辑配置文件
#crontab -u <-l, -r, -e>
# crontab -u 指定一个用户
# crontab -l 列出某个用户的任务计划
# crontab -r 删除某个用户的任务
# crontab -e 编辑某个用户的任务

5.设置定时任务 crontab -e

#一分钟执行一次(可以用来测试)
*/1 * * * * bash /home/java/mysqldump.sh
#每天晚上11点55执行
55 23   *  *  * bash  /home/java/mysqldump.sh
#每个月的2号晚上11点30删除上月的备份
30 23  2 * * .bash /home/java/delmysqlbak.sh  

注意: 粘贴标本到本地上传到liunx上,会不能直接使用,会报错:

-bash: ./mysql_dump.sh: /bin/sh^M: bad interpreter: No such file or directory

解决办法:

  • vim mysql_dump.sh
  • :set ff=unix
  • :wq

以上步骤完成即可。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值