我正在使用此命令通过mysqldump进行备份:
sudo su
mysqldump --defaults-file=/.confile.cnf -u USER --all-databases | gzip > /backups/$(date +%Y-%m-%d).sql.gz
但是我想使其自动化,所以我将其添加到cron中:
29 3 * * * root mysqldump --defaults-file=/.confile.cnf -u USER --all-databases | gzip > /backups/$(date +%Y-%m-%d).sql.gz
但是问题是,当我执行命令时它起作用了。但是,当我将其添加到cron时,什么也没发生。
我写错了吗?我应该用其他方式吗?
我在其他帖子中进行了搜索,但找不到适用于该案例的解决方案。
有cron日志:
Aug 4 13:15:01 ip-172-31-46-159 CRON[31590]: (root) CMD ( mysqldump --defaults-file=/...
Aug 4 13:15:01 ip-172-31-46-159 CRON[31589]: (CRON) info (No MTA installed, discarding output)
答案 0 :(得分:1)
我终于找到了解决方法:
我在脚本上添加了mysqldump命令,没有任何更改:
#!/bin/bash
mysqldump --defaults-file=/.confile.cnf -u USER --all-databases | gzip > /backups/$(date +%Y-%m-%d).sql.gz
然后我从cron的下一行调用此脚本:
29 3 * * * root /home/ubuntu/script.sh
它可以正常工作。
注意:script.sh和confile.cnf应该具有600个权限(chmod 600 /PATH
)
答案 1 :(得分:0)
crontab值应为
29 3 * * * mysqldump --defaults-file = /。confile.cnf -u UserNameGoesHereIfNotInDefaultsFile --all-databases | gzip> / backups / $(date +%Y-%m-%d).sql.gz