乘风原创程序

  • Mysql如何在linux中实现定时备份
  • 2020/9/22 9:55:15
  • 在实际项目中,数据库是要经常备份的,就是为了防止突发情况,前段时间,我的数据库就遭遇了入侵要支付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

    之后看结果就行