2012-11-06 67 views
0

我即將編寫一個腳本,以預定的方式執行一些ruby腳本。 生產env:運行debian的企業集羣,對用戶有限制的權限,所以我沒有權限編輯cron表文件。我可以隨時使用紅寶石嗎? 紅寶石1.9.1 謝謝你的回答。是否有可能在沒有權限使用crontab的情況下使用'每當'的紅寶石?

+0

你是什麼意思,「我可以使用每當紅寶石?」如果腳本沒有遇到權限問題,我不明白爲什麼你不能使用它們 – Wasi

+3

「每當」是一個Ruby的寶石,可以讓你在Ruby中編寫cronjobs。 OP的標題看起來像是他在句子中隨機使用「when」連詞,這可能解釋了downvotes。 – danneu

+2

沒有人「欠」任何人,但是如果人們解釋他們的不滿意,特別是在新用戶提出的問題上,系統會更好地工作,新用戶可能更願意回來。 – Dmitri

回答

3

寶石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

+0

感謝你的努力,這至高無上地回答我的關注。 – Ayoub

1

您想從crontab運行的腳本必須以某個用戶身份運行才能工作。如果您有權以該用戶身份運行腳本,那麼您還應該可以訪問該用戶的crontab,而不是root的crontab。只要你有這個,你應該可以使用每當gem創建和編輯該用戶的crontab的cron作業。

如果此限制不存在,那麼只需通過其他用戶的crontab運行腳本即可獲得root權限,當然您也不希望這樣做成爲可能。

+0

當然不是!謝謝。 – Ayoub

相關問題