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