MySQL设置自动备份【文件名添加系统时间】

自动备份需要先写一个脚本,里边写上我们备份数据库的命令,然后用crontab,让它定时执行就行了。下边是我写的脚本:

#!/bin/bash

/usr/bin/mysqldump -u root -proot mysql > /home/backup/mysql_$(date "+%Y%m%d_%H:%M:%S").sql

PS:

  • 这里的路径一定要用绝对路径,不要用相对路径,不然在crontab执行时可能会因为找不到文件而无法执行。
  • date “+%Y%m%d_%H:%M:%S” 这句中date后边要有一个空格,不然也会报错的哦。
  • -proot后边的mysql是要备份的数据库名。

下面时cron命令:

root@sd:/home# crontab -e
//然后会弹出一个文本编辑器,让你填写命令,输入
43 13 * * * bash /home/test.sh >/dev/null 2>&1

然后保存退出就行了。

命令解释:

  • 上边的命令是每天在13点43分的时候执行test.sh脚本,路径要用绝对路径。
  • 注意不要忘了bash,之前我在网上查资料的时候都没有写,所以我也没有写,虽然crontab日志中显示执行了这个命令,但是脚本就是不执行,改了半天,后来加了一个bash就好了。
  • 最后边的 >/dev/null 2>&1 ,是crontab每执行一次都会默认发一封邮件,但是如果没有装邮箱的话,就可能是报错,我的没有加这个也没问题。这个问题在日志中会出现
    Aug 12 11:06:01 sd CRON[30101]: (CRON) info (No MTA installed, discarding output)
crontab用法详解:https://blog.csdn.net/k_young1997/article/details/81606667

猜你喜欢

转载自blog.csdn.net/k_young1997/article/details/81604524