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