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是否是启动状态,否则定时任务会没有生效哦