Linux环境定时备份mysql数据库

1.编写建立备份文件夹

随便切换到任意目录,这里我选着home目录下做备份

cd  home

mkdir backup

2.切换到新建的文件夹,home\backup,创建备份脚本

vi  dcm.sh   (这里没有backup目录下没有dcm.sh脚本的话会则自动创建dcm.sh脚本)

打开dcm.sh后按a键进入insert编辑模式,复制一下内容

#!/bin/bash
mysqldump -uroot -proot dcm > /home/backup/dcm_$(date +%Y%m%d_%H%M%S).sql
#!/bin/bash
mysqldump -uroot -proot dcm | gzip > /home/backup/dcm_$(date +%Y%m%d_%H%M%S).sql.gz

上面第一行是备份数据库,第二行是压缩备份的数据库 ,复制完后,按Esc,然后输入英文冒号 : 再输入wq并回车保存即可,

这里编写完成脚本后可以先执行脚本,看脚本是否可成功执行 ,切换的home\backup目录下执行 sh dcm.sh命令,看是否能正常备份,

如果出现命令不可执行,/bin/bash^M: bad interpreter: No such file or directory

通过查阅资料得知,shell脚本格式必须是unix才行,但我这个脚本是在windows上编写完成传到Linux服务器上的,所以一执行就报错:

cat -A filename,如果输出结果中行末尾是^M$,则是dos格式,如果行末尾只是$,则是unix格式。

需要修改编码 

vim filename,编辑文件,执行“: set ff=unix”,将文件设置为unix格式,然后执行“:wq”,保存退出。

3.编写crontab 定时任务

编写定时任务前,请先确保crontab已安装,若没有安装,请自行百度解决

crontab -e 进入编写任务执行脚本,我的脚本是每天凌晨00点05分执行,如下

05 00 * * * sh /home/backup/dcm.sh

crontab命令详情可参考https://www.cnblogs.com/xiaoyaojinzhazhadehangcheng/p/11611248.html

编写完成定时任务后记得检查定时任务crontab是否是启动状态,否则定时任务会没有生效哦

 

posted @ 2021-08-18 10:49  凉了记忆  阅读(178)  评论(0编辑  收藏  举报