取得作為 cron 作業執行的所有腳本及其路徑的列表

取得作為 cron 作業執行的所有腳本及其路徑的列表

我正在尋找一些腳本或終端命令來列出所有活動腳本(最好帶有它們的路徑),這些腳本由 cron、cron.daily 和/或 anacron 定期運行。我並不是在尋找針對腳本的特定時間段的過濾器,而是需要列出的所有腳本(但是有些管理員可能需要這種過濾器)。

目的:記錄定期運行的所有腳本,以便調試或故障檢查、更新和轉移到新系統變得簡單和有效率。

謝謝

答案1

我不確定這是否是你想要的。我不久前在一些 stackexchange 上找到了這個答案,我在一台伺服器上使用它。

for user in $(cut -f1 -d: /etc/passwd); do echo $user; crontab -u $user -l; done

這將列出所有使用者的所有 crontab。

答案2

至於你在互聯網上找到的任何東西,你不應該在沒有理解的情況下運行,但以下將獲取在cron.hourly/ cron.daily/cron.monthly文件夾中運行的腳本的文件名和顯示路徑...(在我的例子中是CentOS )

cd /etc/cron.hourly/&&for i in $(ls);do find `pwd` -name $i;done&&cd /etc/cron.daily/&&for i in $(ls);do find `pwd` -name $i;done&&cd /etc/cron.weekly/&&for i in $(ls);do find `pwd` -name $i;done&&cd /etc/cron.monthly/&&for i in $(ls);do find `pwd` -name $i;done

基本上有多個版本:

cd /etc/cron.hourly/&&for i in $(ls);do find 'pwd' -name $i;done

變更到目錄,然後ls尋找中的每個檔案名稱並顯示路徑

編輯:對於喜歡結構的編碼人員......與函數相同:

function AllTheCrons {
    cd /etc/cron.hourly/
    for i in $(ls);
        do
            find `pwd` -name $i;
        done;
    cd /etc/cron.daily/
    for i in $(ls);
        do
            find `pwd` -name $i;
        done;
    cd /etc/cron.weekly/
    for i in $(ls);
        do
            find `pwd` -name $i;
        done;
    cd /etc/cron.monthly/
    for i in $(ls);
        do
            find `pwd` -name $i;
        done;
}

然後運行:

AllTheCrons

相關內容