一個使用者可以有多個 crontab 檔案嗎?

一個使用者可以有多個 crontab 檔案嗎?

假設我正在創建兩個 crontab 檔案。

  1. /tmp/my-crontab
  2. /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.hourlyDebian 中實作和朋友的操作。主要/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 -

這對我有用。希望有幫助。

相關內容