使用環境變數來追蹤 cron 啟動的進程

使用環境變數來追蹤 cron 啟動的進程

我的問題:

我在 perl 中有一個 if 語句,我嘗試在啟動 perl 腳本時透過環境變數偵測它是透過 cron 作業啟動還是透過 shell 正常執行啟動。

有什麼方法可以在 crontab 本身中設定一個由 cron 啟動的程式可以存取的環境變數嗎?

本質上,我希望將其放在 crontab 的頂部:

COMPANYCRON=1

* * * * * someperl.pl

在 someperl.pl 中這個 if 語句:

if ( $ENV{'COMPANYCRON'} eq '1' ) {
    $job_creator = "cron";
}

有沒有辦法做到這一點?或者有更好的方法來追蹤 cron 作業?

答案1

一些 cron 守護程式(例如 Debian/Ubuntu 上的 Vixie cron)允許與您在範例中編寫的語法完全相同。在其他系統(RHEL 等)上,在 crontab 中使用類似的內容:

* * * * * export COMPANYCRON=1; someperl.pl 

相關內容