2014-04-21 58 views
2

我們正在運行Chef 11.4.4,使用非全局安裝(它作爲gem安裝)。在我們的食譜之一,我們使用喜歡的cron提供商:廚師cron提供程序創建多個crontab條目

checksum = Digest::MD5.hexdigest(node['fqdn'] || 'unknown-hostname') 
sleep_time = checksum.to_s.hex % node['custom_command']['splay'].to_i 

cron "custom_command" do 
    user "custom_user" 
    hour 0 
    minute 0 
    command "/bin/sleep #{sleep_time}; /home/custom_user/custom_command.sh" 
end 

不知怎的,這似乎是創建多個條目的cron的時間約0.01%。在受影響的服務器,我們得到以下輸出從crontab -u custom_user -l

# Chef Name: custom_command 
0 0 * * * /bin/sleep 7035; /home/custom_user/custom_command.sh 
# Chef Name: custom_command 
0 0 * * * /bin/sleep 7035; /home/custom_user/custom_command.sh 

運行廚師客戶端不修改的crontab。但編輯crontab並刪除這兩個條目然後再次運行chef-client將會解決這個問題。然後crontab -u custom_user -l輸出看起來(正確),如:

# Chef Name: custom_command 
0 0 * * * /bin/sleep 7035; /home/custom_user/custom_command.sh 

這個問題顯得隨意彈出 - 我們目前必須解決每天約有1服務器。所以這看起來像是某種種族問題。

是否有其他人遇到同樣的問題?我沒有看到它使用cron_d供應商。

+0

這個問題似乎是題外話,因爲它很可能會在大廚的cron中的錯誤'提供者,並應在https://tickets.opscode.com報告。 – sethvargo

+0

謝謝@sethvargo - 提交爲[CHEF-5256](https://tickets.opscode.com/browse/CHEF-5256) – tbizzle

回答

0

這聽起來像一個錯誤,但一個可能的解決方法可能只是在創建之前刪除所有crontab作業: crontab -r -u USERNAME