Cron 未运行脚本

Cron 未运行脚本

我有一个脚本,在调用时可以运行:

/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 已设置 PATH 变量:

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

该脚本是 mysqldump 到 /var/tmp/ 目录:

#!/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

答案1

我猜测(缺少调试信息)这是一个受限环境/路径问题,您似乎已尝试部分解决该问题。

更新/usr/local/bin/myscript以包含使用完整路径,例如:

#!/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完整路径是多余的,mysqldump关键的是看到:whereis mysqldump在你的系统上)

相关内容