在实际项目中,数据库是要经常备份的,就是为了防止突发情况,前段时间,我的数据库就遭遇了入侵要支付B特比的,结果数据全没了,哎,还好当时只是个测试库,不过有了这次危机,也就开始意识到了这个问题了。
先写个测试的数据库备份命令:
#!/bin/sh DB_USER="root" DB_PASS="1234" DB_DATA_NAME="hzl" 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
命令如上,直接写成的是shell文件,文件运行成功,能在目录下手动生成备份的.gz文件。
这里要注意:.sh文件最开始是运行不了的,
chmod +x sqlAutoBak.sh
好,上面的比较简单,开始下面的重头戏,让脚本每天自动执行。
1.确认crontab是否安装
crontab -l
能看到执行脚本的列表,说明安装成功。如果没有没有的话,网上随便找个安装教程就行。
[root@VM_0_4_centos ~]# crontab -l */1 * * * * /usr/local/qcloud/stargate/admin/start.sh > /dev/null 2>&1 &
2.将备份脚本加入到crontab服务中
crontab -e
按下 a 键进入到编辑模式
输入 0 */1 * * * /home/work/start-service.sh
同时按下 ctrl+c 退出编辑模式
按下 shift+: 输入 wq 退出 crontab
之后看结果就行,