【问题标题】:Why my scheduled job is not working?为什么我的预定工作不起作用?
【发布时间】:2015-04-23 21:41:12
【问题描述】:

我用 crontab 像这样定义一个工作

0 2 * * * dbadmin . /home/dbadmin/back.sh

它不是 root 我想用 dbadmin 用户运行这个 .sh 文件。

但是当我检查它时它不起作用。

在日志中它给出了这个:

Feb 22 21:16:01 localhost crond[14634]: (*system*) BAD FILE MODE (/etc/crontab)
Feb 22 21:16:01 localhost crond[14634]: (dbadmin) RELOAD (cron/dbadmin)
Feb 22 21:16:01 localhost crond[28451]: (dbadmin) CMD (dbadmin . /home/dbadmin/back.sh)

我该如何解决这个问题?提前致谢

【问题讨论】:

  • 将标准输出和标准错误重定向到日志以检查是否有错误?

标签: linux centos crontab vertica


【解决方案1】:

使用 crontab 程序,您通常只能访问 5 个调度字段(分钟、小时、月中的某天、月和周中的某天)。但是,使用 Vixie cron(通常在 Linux 上)通过编辑 system crontab 文件(/etc/crontab,以及 /etc/cron.d 中的文件),您可以使用第 6 个字段作为用户名.例如,见How to specify in crontab by what user to run script?

如果你使用crontab进入这一行

0 2 * * * dbadmin . /home/dbadmin/back.sh
          ^^^^^^^

“dbadmin”用户名被视为要执行的命令。您可以(如 crontab 的手册页中所述)在 /etc/crontab 中使用该行。我指出这是 Vixie(也称为ISC)crontab。 Solaris 等遗留系统的 crontab 功能较弱,不允许指定用户在其下运行。

根据cron 的手册页,它将通过电子邮件发送输出。可能没有邮件是因为“dbadmin”命令失败。

【讨论】:

  • 感谢回答,但它不起作用,日志在哪里?我找不到日志
  • 通常 cron 设置为通过电子邮件发送任何写入标准错误的内容。查看 Vixie cron (manpage) 的描述,它并没有做出那种区分——但电子邮件是我会看的地方。
【解决方案2】:

你需要使用sh命令来执行sh文件。如下所示

0 2 * * * dbadmin sh /home/dbadmin/movefolder.sh

希望它有效。 谢谢。

【讨论】:

  • 它不工作:(我怎么能理解为什么它不工作,我看不到日志
【解决方案3】:

以 dbadmin 的身份创建一个 crontab 条目,其中不包含用户名:

0 2 * * * /home/dbadmin/movefolder.sh > /home/dbadmin/cron.out 2>@1

日志文件 /home/dbadmin/cron.out 每天都应该被一个新的替换。 当您对 cron+move 文件夹有信心时,将输出文件替换为 /dev/null
如果上述失败,请检查以 dbadmin 身份调用脚本:

sh /home/dbadmin/movefolder.sh

当这个工作并且 cron 失败时,它可能是环境。试试类似的东西

0 2 * * * . /home/dbadmin/.profile; /home/dbadmin/movefolder.sh > /home/dbadmin/cron.out 2>@1

【讨论】:

  • 嗨,感谢您的回答,它给出了这个日志,但它并没有达到我的预期:2 月 22 日 21:37:01 localhost crond[14634]: (dbadmin) RELOAD (cron/dbadmin ) 2 月 22 日 21:37:01 localhost crond[31546]: (dbadmin) CMD (sh /home/dbadmin/back.sh)
  • 你再次从 root 的 cron 启动它。尝试小步骤,首先从命令行,然后从本地 cron。或者替换您的脚本date 并再次重定向输出。
猜你喜欢
  • 1970-01-01
  • 2012-12-07
  • 1970-01-01
  • 1970-01-01
  • 2016-09-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-25
相关资源
最近更新 更多