Cron Job没有执行具有Command作为另一个用户执行的Shell脚本

时间:2015-04-16 17:38:33

标签: macos unix ubuntu

我有一个shell脚本,它使用另一个用户执行命令

Shell脚本:

su user1 -c 'command'

当我在终端中调用它时它很好,它要求密码,事情进展顺利。

我使用像这样的cron作业安排了这个

sudo crontab -e

*/5 * * * * /path/to/shellscript.sh

但是cronjob似乎没有执行上面的命令“su user1 -c'command'”,所有的echo语句和循环都会执行。

注意:我使用的是Mac OS X

2 个答案:

答案 0 :(得分:0)

需要密码。您可能需要在文本文件中保留密码,如下所示

echo password | su user1 -c 'command'

答案 1 :(得分:0)

当您以另一个用户身份运行脚本时,您需要在shell脚本中提供密码

#!/bin/sh
PASSWORD="pass123"
echo PASSWORD>su user1 -c 'command'

然后,当您运行cron时,由于存在凭据,它将以该用户的身份获取命令。