こんにちは!Linuxサーバーの構築や運用保守、日々お疲れ様です。
サーバーのメンテナンスや引継ぎの際、「このサーバーで動いている定期処理(Cron)って、全体で何が登録されているんだろう?」と調査することはありませんか?
普通に crontab -l コマンドを実行しても、今自分がログインしているユーザー(または root ユーザー)のスケジュールしか確認できません。他の一般ユーザーが個別に仕込んでいるCronまでは見落としてしまいがちです。
今回は、サーバー内に存在する「すべてのユーザーのCron設定」を漏れなく一括で確認する手順をシンプルに解説します!
1. 結論:Cronの正体は /var/spool/cron の中にある!
Linuxシステムにおいて、各ユーザーが crontab -e で登録した設定内容は、実は特定のディレクトリの中に「ユーザー名」のファイルとしてそのまま保存されています。
そのため、管理者権限(root)を持ってそのディレクトリを覗きに行けば、全ユーザーの設定を瞬時に把握することができます。
📁 対象のディレクトリ
-
/var/spool/cron(CentOS、RHEL、Rocky Linuxなど) -
※UbuntuやDebian系の場合は
/var/spool/cron/crontabsになります。
2. 全ユーザーのCronを一括確認する手順
それでは、実際にターミナルでの操作手順を見ていきましょう。
ステップ①:Cronの保存ディレクトリへ移動する
まずは、管理者権限(sudo など)を使って、Cronの設定ファイルが集まっているディレクトリへ移動し、ファイル一覧を表示します。
cd /var/spool/cron
ll
ステップ②:表示されたユーザー名を確認する
ll(または ls -l)を実行すると、以下のようにCronが登録されているユーザーの名前がファイル名としてズラッと表示されます。
-rw-------. 1 root root 150 2026-06-13 12:00 hoge
-rw-------. 1 root root 85 2026-06-13 12:05 webuser
-rw-------. 1 root root 320 2026-06-13 12:10 dbadmin
上記の場合、「hoge」「webuser」「dbadmin」の3ユーザーがCronを登録していることが分かります。
ステップ③:中身を覗いて設定を確認する
特定のユーザーの設定だけを見たい場合は、cat コマンドでそのファイルを開きます。
cat hoge
「ユーザーが多すぎるから、とりあえず登録されている全設定をスクロールしながら一気に見たい!」という場合は、ワイルドカード(*)を使ってまとめて出力するのが手っ取り早くておすすめです。
cat *
💡 知っておくと便利な応用コマンド
① 誰の設定か分かりやすく「ファイル名付き」で一括表示する
cat * だと全ての行が連続して表示されるため、大量に登録されていると「このジョブは誰の権限で動いているんだ?」と迷子になってしまいます。 そんな時は tail -n +1 * コマンドを使うのがプロの小技です。
tail -n +1 *
これを実行すると、以下のように「==> ユーザー名 <==」という見出し付きで中身を綺麗に一括出力してくれるため、調査の効率が劇的にアップします。
② システム全体のCron(/etc/crontab)も見落とさないように!
ユーザー個別のCron(/var/spool/cron)だけでなく、システム全体で動いている以下の設定ファイルも合わせて確認しておけば、サーバー内の定期処理の調査は完璧です。
-
/etc/crontab(システム全体の共通Cron) -
/etc/cron.d/(アプリケーション等が配置するCron)
まとめ:全ユーザーのCronは「ディレクトリを直読み」が最速!
Linuxサーバー内の定期実行ジョブを一括調査したいときは、以下の流れを覚えておきましょう。
-
cd /var/spool/cronで設定ファイルの置き場へ移動する -
llでCronを登録しているユーザーを一覧する -
cat *またはtail -n +1 *で中身を一括確認する
不要になった古いジョブが裏で動き続けてリソースを食っていた……なんていうトラブルを防ぐためにも、定期的な棚卸しにぜひこの手順を活用してくださいね!
