cronジョブとして実行されるすべてのスクリプトとそのパスのリストを取得します。

cronジョブとして実行されるすべてのスクリプトとそのパスのリストを取得します。

cron、cron.daily、anacron によって定期的に実行されるすべてのアクティブなスクリプト (できればパス付き) を一覧表示するスクリプトまたはターミナル コマンドを探しています。スクリプトの特定の期間のフィルターを探しているのではなく、すべてのスクリプトを一覧表示する必要があります (ただし、一部の管理者はこの種のフィルターを必要とする場合があります)。

目的:定期的に実行されるすべてのスクリプトを文書化することで、デバッグや障害チェック、更新、新しいシステムへの転送が簡単かつ効率的になります。

ありがとう

答え1

これがあなたが望んでいることかどうかはわかりません。私はしばらく前にこの回答を StackExchange で見つけ、それを 1 つのサーバーで使用しています。

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

関連情報