bash - 为MySQLdump创建crontab

分享于 

2分钟阅读

ubuntu

 

问题:

我创建了一个crontab来备份MySQL中的数据库,运行bash脚本中的mysqldump命令,也没有错误。但是当我将bash脚本添加到crontab文件时,它不会执行:


#!/bin/bash



mysqldump --column-statistics=0 -h xx.xx.xx.xxx -u wissam -p'xxxxxx' 


--all-databases | gzip > ~/Desktop/DBs/Backup"$(date +"%Y_%m_%d_%I_%M_%p")file.sql.gz" 



crontab命令:


09 9 * * * root sh /home/ahmad/Desktop/DBs/mysqlcron.sh 2>&1>> /home/ahmad/Desktop/DBs/MySQLdump.log




答案1:

请使用绝对路径。

 
mysqldump



 
~/



需要一个目录,"~"永远找不到你的用户,

除此之外:


-h xx.xx.xx.xxx -u wissam -p'xxxxxx' 



非常糟糕,因为它会回显主机和密码到进程列表,


--defaults-extra-file=.mysql




答案2:

Crontab需要绝对路径


09 9 * * * root /bin/bash /home/ahmad/Desktop/DBs/mysqlcron.sh 2>&1>> /home/ahmad/Desktop/DBs/MySQLdump.log



或者


09 9 * * * root /home/ahmad/Desktop/DBs/mysqlcron.sh 2>&1>> /home/ahmad/Desktop/DBs/MySQLdump.log





BASH  CRON  Crontab  mysqld  Mysqldump  
相关文章