【问题标题】:Creating crontab for non-root user为非 root 用户创建 crontab
【发布时间】:2015-11-06 23:20:22
【问题描述】:

我正在尝试通过 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 用户的身份完成。

【问题讨论】:

  • 取决于平台 - 检查 /etc/cron.allow 和 /etc/cron.deny
  • 每当您遇到 cron 问题时,首先要做的是检查 cron 日志以确保 1) cronjob 实际运行并且 2) 没有错误。在我的系统上,日志位于 /var/log/cron。
  • @Sobrique 我添加了 oracle 的 cron.allow 文件
  • @ThisSuitIsBlack不是我检查了日志。我认为 oracle crontab 根本没有运行。

标签: oracle perl crontab


【解决方案1】:

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

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

所以正确的命令是:

sudo crontab -e -u oracle

【讨论】:

  • 或者,您可以将作业添加到/etc/crontab,它有一个额外的字段来指定作业应该由哪个用户运行。
猜你喜欢
  • 2023-03-16
  • 2020-01-15
  • 2017-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-24
  • 1970-01-01
相关资源
最近更新 更多