
假設我正在創建兩個 crontab 檔案。
/tmp/my-crontab
/root/my-alternate-crontab
每個 crontab 檔案都被安排運行不同的腳本。
當我啟動 cronjob 時,第一個將被舊的替換。
crontab -u smarak /tmp/my-crontab
crontab -u smarak /root/my-alternate-crontab
以上對於單一使用者來說可能嗎?
答案1
解決單一 crontab 問題的兩種方法。
將您的 crontab 條目放入某個目錄中的檔案中,例如~/crontab.d/thisandthat.cron
,然後使用下列命令將這些變更提交到系統 crontab:
cat ~/crontab.d/*.cron | crontab -
該擴充功能.cron
是為了避免意外包含編輯器中的備份檔案。請注意,由於所有文件都連接在一起,因此文件中設定的任何變數也將應用於後面的文件。
您也可以執行類似於/etc/cron.hourly
Debian 中實作和朋友的操作。主要/etc/crontab
包含這樣的規則:
17 * * * * root cd / && run-parts --report /etc/cron.hourly
您可以安排一個 crontab 條目來執行多個程式。 Debian 的run-parts dir
類似,for f in dir/* ; do "$f" ; done
只是它會跳過奇怪的檔名,再次避免執行編輯器等建立的備份檔。
答案2
否。為什麼?因為 crontab 是與單一使用者關聯的所有 cron 作業的「表」(「選項卡」)。
如果您想使用 執行多個任務cron
,只需在 crontab 中新增多行即可。
如果您有多個包含 cron 作業規範的文件,只需將它們連接起來即可:
cat crontab1 crontab2 crontab3 >my-crontab
crontab my-crontab
答案3
您可以只閱讀實際條目並在後面新增條目。
一旦你運行了這個:
crontab -u smarak /tmp/my-crontab
理想情況下你可以這樣做:
crontab -u smarak <(cat /root/my-alternate-crontab) <(crontab -l)
但 crontab 似乎不接受上面的形式,所以這裡有解決方法:
cat /root/my-alternate-crontab <(crontab -l)| crontab -u smarak -
這對我有用。希望有幫助。