记录一下定时备份数据库的方法
Linux里有一个 crontab 命令被用来提交和管理用户的需要周期性执行的任务,就像Windows里的定时任务一样,用这个就可以设置定时任务去执行相应的操作。
所以,我们通过创建一个shell文件,把执行的命令放在里面,然后再用crontab去定时执行就可以达到我们想要的效果了。
创建一个文件夹存放备份文件
这里我是放在/home/deployer路径下
cd /home/deployer
mkdir backup
创建备份的shell文件
touch back_sql.sh
编辑这个脚本:vim back_mysql.sh
如果没有vim在安装一下:yum -y install vim*
脚本内容格式如下:
#!/bin/bash
/usr/local/mysql/bin/mysqldump(这个路径是你mysqldump所在路径) -u用户名 -p密码 数据库名 > /home/backup/数据库名_$(date +%Y%m%d_%H%M%S).sql
如果你要备份成压缩文件的话,可以写成下面这个命令
#!/bin/bash
/usr/local/mysql/bin/mysqldump -u用户名 -p密码 数据库名 | gzip > /home/backup/数据库名_$(date +%Y%m%d_%H%M%S).sql.gz
这个是我的sh
#!/bin/bash
/home/server/mysql/bin/mysqldump -uroot -p123456 xh_wx > /home/deployer/backup/xh_wx_$(date +%Y%m%d).sql
添加好后记得保存
:wq -保存文件,退出 vim
:wq! -强制保存文件,退出 vim
:q -不保存文件,退出 vim
:q! -不保存文件,强制退出 vim
修改脚本权限
chmod 777 back_sql.sh
或者
chmod u+x back_sql.sh
测试
测试一下这个shell是否能执行,输入文件名即可直接执行
./back_mysql.sh
执行后去backup文件夹里看看,是否有导出来的文件
在crontab中设置定时任务
先检查一下是否安装:如果已安装则请略过
安装命令
yum -y install vixie-cron
yum -y install crontabs
在CentOS系统中加入开机自动启动:
chkconfig --level 345 crond on
输入命令进入crontab任务设置 : crontab -e
在里面添加以下命令: 00 02 * * * /home/deployer/backup/back_sql.sh
然后保存退出
“ 00 02 * * * ”是crontab的时间规则,即执行周期,我写的这句解析后就是每天的 02:00 执行一次该目录下的那个bk_mysql.sh文件. 执行周期可以按照自己的需求来设定
crontab的格式很灵活,每天每小时,具体哪一天都可以设置。在这里就不展开说明了
运行一段时间的效果,这是我服务器上的备份文件
个人博客,欢迎大家来访:https://zhaoshuchao.top