Cron

立即手動執行 cron 作業

  • September 21, 2021

(我已經閱讀瞭如何測試新的 cron 腳本?。)

我有一個特定的問題(cron 作業似乎沒有執行或正常執行),但問題很普遍:我想調試 cronned 的腳本。我知道我可以設置一個 * * * * * crontab 行,但這不是一個完全令人滿意的解決方案。我希望能夠從命令行執行 cron 作業,就像 cron 正在執行它一樣(相同的使用者、相同的環境變數等)。有沒有辦法做到這一點?必須等待 60 秒來測試腳本更改是不切實際的。

這就是我所做的,它似乎在這種情況下工作。至少,它向我顯示了一個錯誤,而作為使用者從命令行執行時不會顯示錯誤。


第 1 步:我將這一行暫時放在使用者的 crontab 中:

* * * * *   /usr/bin/env > /home/username/tmp/cron-env

然後在寫入文件後將其取出。

第 2 步:為自己製作了一個 run-as-cron bash 腳本,其中包含:

#!/bin/bash
/usr/bin/env -i $(cat /home/username/tmp/cron-env) "$@"

那麼,作為有問題的使用者,我能夠

run-as-cron /the/problematic/script --with arguments --and parameters

該解決方案顯然可以擴展為使用 sudo 等以獲得更大的靈活性。

希望這對其他人有幫助。

引用自:https://serverfault.com/questions/85893