GNU/Linux >> Linux の 問題 >  >> Linux

自分のマシンでスケジュールされているすべての cron ジョブのリストを取得するにはどうすればよいですか?

Linux システムのセットアップ方法に応じて、以下を参照できます。

  • /var/spool/cron/* (ユーザー crontab)
  • /etc/crontab (システム全体の crontab)

また、多くのディストリビューションには以下があります:

  • /etc/cron.d/* これらの構成の構文は /etc/crontab と同じです

  • /etc/cron.hourly/etc/cron.daily/etc/cron.weekly/etc/cron.monthly

これらは、ディレクトリ名ごとに毎時、毎日、毎週、または毎月実行される実行可能ファイルを含む単なるディレクトリです。

その上で、ジョブを使用できます (/var/spool/at/* を確認してください)。 )、アナクロン (/etc/anacrontab および /var/spool/anacron/* ) とおそらく私が忘れている他のもの.


ほとんどの Cron (例:Vixie-Cron - Debian/Ubuntu のデフォルト、Cronie - Fedora のデフォルト、Solaris Cron ...) では、現在のユーザーのスケジュールされた cron ジョブのリストを取得します:

$ crontab -l

または別のユーザーのために

# crontab -l -u juser

すべてのユーザーの crontab を取得するには、すべてのユーザーをループしてこのコマンドを呼び出します。

または、スプール ファイルを検索することもできます。通常、それらは /var/spool/cron の下に保存されます 、例えばディレクトリに続く vcron の場合

/var/spool/cron/crontabs

にあるシステム全体の crontab を介してジョブを構成することもできる root ユーザーを除いて、すべてのユーザーの構成済みのすべての crontab が含まれています。
/etc/crontab

cronie (Fedora/CentOS のデフォルト) では、.d があります。 システム cron ジョブ用のスタイル構成ディレクトリ:

/etc/cron.d

(いつものように、.d ディレクトリを使用すると、さまざまなパッケージの一部である構成エントリの維持が簡素化されます。)

便宜上、ほとんどのディストリビューションには、リンク/保存されたスクリプトが定期的に実行されるディレクトリも用意されています。例:

/etc/cron.daily
/etc/cron.hourly
/etc/cron.monthly
/etc/cron.weekly

これらのスクリプトのタイムリーな実行は、通常 run-parts によって管理されます システム crontab または anacron 経由のエントリ。

Systemd (Fedora、CentOS 7 など) では、タイマー ユニットを介して定期的なジョブの実行を追加で構成できます。有効なシステム タイマーは、次の方法で表示できます。

$ systemctl list-timers

root 以外のユーザーも、タイマーが設定されている場所で実行されているユーザー systemd インスタンスを持っている可能性があることに注意してください。たとえば、Fedora では、デフォルトで、現在ログインしているユーザーごとにユーザー systemd インスタンスが開始されます。これらは次の方法で認識できます。

$ ps aux | grep 'systemd[ ]--user'

これらのユーザー タイマーは、次の方法で一覧表示できます。

$ systemctl --user list-timers

list-timers を発行する代わりの方法 コマンドは、タイマーユニットファイルを検索することです (パターン:*.timer ) と、通常のシステムおよびユーザーの systemd 構成ディレクトリ内のそれらへのシンボリック リンク:

$ find /usr/lib/systemd/ /etc/systemd -name '*.timer'
$ find /home '(' -path '/home/*/.local/share/systemd/user/*' \
              -o -path '/home/*/.config/systemd/*' ')' \
      -name '*.timer'  2> /dev/null

(通常のサービス ユニットと同様に、タイマー ユニットは、適切な systemd 構成ディレクトリにシンボリック リンクを作成することで有効になります。)

こちらもご覧ください:

  • Cron に関する ArchWiki の記事
  • Systemd タイマーに関する ArchWiki の記事

特定のユーザーのすべての cron を一覧表示します。

<ブロック引用>

crontab -u ユーザー名 -l;

すべてのユーザーのすべての cron を一覧表示するには

スーパーユーザーとして実行

#!/bin/bash
#List all cron jobs for all users
for user in `cat /etc/passwd | cut -d":" -f1`;
do 
crontab -l -u $user;
done

Linux
  1. Centos – Centos7ですべてのcronレコードを表示する方法は?

  2. / etc / motdはどのように更新されますか?

  3. Crontabを使用してcronジョブをスケジュールする方法

  1. 1 時間ごとに実行可能ファイルを実行するように cron ジョブを設定する方法は?

  2. Linux - すべてのユーザーを一覧表示する方法

  3. nginx ですべての仮想ホストを一覧表示するにはどうすればよいですか

  1. Linuxでシステム以外のユーザーのリストを取得するにはどうすればよいですか?

  2. cron ジョブの結果を表示するにはどうすればよいですか?

  3. 停止したすべてのジョブを強制終了するにはどうすればよいですか?