为非root用户创建crontab

时间:2015-11-06 15:07:14

标签: oracle perl crontab

我正在尝试通过crontab运行一个脚本,该脚本需要以 oracle 用户身份运行。我尝试通过以下方式为该用户创建crontab: su -u oracle crontab -e允许我创建一个。我编辑了该文件以运行perl脚本:

0 5 * * * /usr/bin/perl /path/master.pl > /tmp/debug.log

然而,当时间过去时,没有任何东西可以运行。 这是为非root用户创建crontab的正确方法吗? master.pl文件也会调用多个脚本,这些脚本也需要以oracle用户身份完成,如果这样做有所不同的话。

1 个答案:

答案 0 :(得分:2)

使用crontab' -u选项。 man page说:

  

-u附加要修改其crontab的用户的名称。                 如果不使用此选项,crontab会检查"您的" crontab中,                 即,执行命令的人的crontab。注意                 因此,当执行命令时,su(8)可能会混淆crontab                 在su(8)下你应该总是使用-u选项。如果不                 crontab存在于特定用户,它是为他创建的                 第一次使用crontab -u命令                 用户名。

所以正确的命令是:

sudo crontab -e -u oracle