![Crontab 脚本未将结果保存在文件中](https://linux22.com/image/1530301/Crontab%20%E8%84%9A%E6%9C%AC%E6%9C%AA%E5%B0%86%E7%BB%93%E6%9E%9C%E4%BF%9D%E5%AD%98%E5%9C%A8%E6%96%87%E4%BB%B6%E4%B8%AD.png)
我想每天备份我的数据库,我已经写了一个脚本
我的cnf
[client]
host=locahost
user=root
password='pw'
脚本
#!/bin/bash
/bin/mysqldump --defaults-file=/home/wasifkhalil/my.cnf --set-gtid-purged=OFF testing_dump > /home/wasifkhalil/db_backups/$(date +"%Y-%m-%d_%H%M")_crm_backup.sql
exit
现在当我运行这个脚本
[root@instance-main db_backups]# /home/wasifkhalil/script.sh
它运行完美,我在文件夹中看到了 sql 文件,但是当我在 crontab 中运行它时它不起作用,我做错了什么?(为了测试,我将其设置为每小时的第 16 分钟)
16 * * * * root /home/wasifkhalil/script.sh
这是我使用的 Cent OS 版本
centos-release-7-3.1611.el7.centos.x86_64
答案1
如果你想以 root 身份运行 bash 脚本,你需要像这样编辑 root 的 crontab:
16 * * * * /bin/bash /path/to/script.sh
解释:
16 * * * * = At minute 16th of every hour.
/bin/bash = shell interpretor.
/path/to/script.sh = path to the script that you need to schedule.