我即将编写一个以预定方式执行某些ruby脚本的脚本。 生产环境:运行debian的企业集群,对用户具有受限权限,因此我没有编辑cron表文件的权限。我可以随时使用红宝石宝石吗? 红宝石1.9.1 谢谢你的回答。
答案 0 :(得分:3)
gem whenever
使用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
。
答案 1 :(得分:1)
要从crontab运行的脚本必须以某个用户身份运行才能工作。如果您有权以该用户身份运行脚本,那么您还应该有权访问该用户的crontab,而不是root用户的crontab。只要你有这个,你就应该能够使用whatever gem为该用户的crontab创建和编辑cron作业。
如果没有这个限制,那么只需通过其他用户的crontab运行脚本就可以获得root权限,当然你不希望这样做。