0

我即将编写一个以预定方式执行一些 ruby​​ 脚本的脚本。生产环境:企业集群运行 debian,用户权限受限,因此我无权编辑 cron 表文件。我可以在任何时候使用红宝石宝石吗?ruby 1.9.1 谢谢你的回答。

4

2 回答 2

3

gemwhenever使用crontab [CRONTAB FILE]来编写它的 crontabs。如果配置为它使用的另一个用户设置 crontab crontab -u [USER] [CRONTAB FILE]。以下来自lib/whenever/command_line.rb的摘录显示了命令是如何生成的。

def write_crontab(contents)
  …
  command = ['crontab']
  command << "-u #{@options[:user]}" if @options[:user]
  command << tmp_cron_file
  …
end

因此,如果执行whenever命令的用户帐户无法执行上面列出的命令,我很确定whenever无法按预期工作。

用户选项可以这样给出:whenever --user someone.

于 2012-11-06T16:14:31.407 回答
1

您要从 crontab 运行的脚本必须以某些用户身份运行才能完全工作。如果您有权以该用户身份运行脚本,那么您还应该有权访问该用户的 crontab,而不是 root 的 crontab。只要您拥有它,您就应该能够使用when gem 为该用户的crontab 创建和编辑cron 作业。

如果没有这个限制,那么您只需通过其他用户的 crontab 运行脚本即可获得 root 权限,当然您不希望这种情况成为可能。

于 2012-11-06T16:27:27.067 回答