我有一个脚本,当调用时工作:
/usr/local/bin/myscript #this works fine
该文件的权限是:
-rwxr-xr-x 1 root root 155 Jan 27 09:34 myscript
我已经添加了一行到/ etc / crontab:
* * * * * root /usr/local/bin/myscript
但是cron似乎不能运行这个。
crontab具有PATHvariables集:
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
该脚本是/ var / tmp /目录的mysqldump:
#!/bin/bash DAY=`date +%y%m%d` TIME=`date +%k%M` mysqldump test -u john -pxxxxxxx > /var/tmp/$DAY.$TIME.test.sql
我想不出有什么问题,但脚本没有运行。
编辑:/ var / log / syslog显示以下条目:
Jan 27 10:20:01 hector CRON[8286]: (root) CMD (/bin/bash /usr/local/bin/myscript) Jan 27 10:20:01 hector CRON[8285]: (CRON) info (No MTA installed, discarding output)
所以我想这是试图运行脚本,但它一定是失败的地方,因为我没有得到相同的输出,如果我用/usr/local/bin/myscript运行它。
我猜(缺乏debugging信息),这是一个有限的环境/path问题,你似乎已经部分地试图解决。
更新/usr/local/bin/myscript以包含使用完整path,如:
#!/bin/bash DAY=`/bin/date +%y%m%d` TIME=`/bin/date +%k%M` /usr/bin/mysqldump -u john -pxxxxxxx test > /var/tmp/$DAY.$TIME.test.sql
(我期望的date完整path是矫枉过正, mysqldump是关键的一个看到:你的系统上的whereis mysqldump )