Crontab脚本不保存结果文件


0

我想每天备份我的数据库,我写了一个脚本

my.cnf中

[client]
host=locahost
user=root
password='pw'

script.sh

#!/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。在您的情况下,您需要使用所需的shell /bin/bash
Alex

你举个例子吗?你的意思是像这样运行“16 * * * * /home/wasifkhalil/script.sh”吗?
Wasif Khalil

要以root用户身份运行它,您应该将其放在root的crontab中
Alex

是的,我在root的crontab中
Wasif Khalil

1
16 * * * * / bin / bash /home/wasifkhalil/script.sh
Alex

Answers:


2

如果要以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.
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.