Cronは、指定された間隔でタスクの実行をスケジュールできるようにするスケジューリングデーモンです。これらのタスクはcronジョブと呼ばれ、分、時間、曜日、月、曜日、またはこれらの任意の組み合わせで実行するようにスケジュールできます。
cronジョブは通常、システムのメンテナンス操作を実行するために使用されます。たとえば、cronジョブを設定して、データベースのバックアップ、最新のセキュリティパッチによるシステムの更新、キャッシュのクリア、メールの送信などの反復的なタスクを自動化できます。
この記事では、cronジョブを一覧表示する方法について説明します。
ユーザーのcrontabファイルは、ユーザーの名前に基づいて名前が付けられ、その場所はオペレーティングシステムによって異なります。 CentOSなどのRedHatベースのディストリビューションでは、crontabファイルは/var/spool/cron
に保存されます。 ディレクトリ。DebianおよびUbuntuでは、ファイルは/var/spool/cron/crontabs
に保存されます。 ディレクトリ。
現在ログインしているユーザーのすべてのcronジョブのリストを取得するには、crontab
を使用します コマンド:
crontab -l
ユーザーがcronジョブを設定している場合、ユーザーのcrontabの内容が画面に表示されます。それ以外の場合、コマンドはno crontab for <username>
を出力します。 。
他のユーザーのcronジョブを一覧表示するには、-u
を使用します コマンドの最後にユーザー名を指定するオプション。たとえば、「mark」という名前のユーザーのcronジョブを一覧表示するには、次を使用します。
sudo crontab -u mark -l
各ユーザーのcrontabファイルには600
があります 権限とユーザーが所有します。 rootとsudo
を持つユーザーのみ 特権は他のユーザーのcronジョブを表示できます。
cronジョブを作成したユーザーを確認するには、spool
のコンテンツを一覧表示します。 rootまたはsudoユーザーとしてのディレクトリ:
sudo ls -1 /var/spool/cron/crontabs
出力は次のようになります:
root
mark
システムのcronジョブの一覧表示#
/etc/crontab
および/etc/cron.d
内のファイル ディレクトリは、システム管理者のみが編集できるシステム全体のcrontabファイルです。
cat
を使用する 、less
または、ファイルのコンテンツを表示するためのテキストエディタ:
cat /etc/crontab /etc/cron.d/*
ほとんどのLinuxディストリビューションでは、/etc/cron.{hourly,daily,weekly,monthly}
内にスクリプトを配置することもできます。 ディレクトリ、およびスクリプトはhour/day/week/month
ごとに実行されます 。
これらのディレクトリ内の各スクリプトには、実行権限が必要です。そうしないと、cronジョブは実行されません。
たとえば、毎週のcronジョブをすべて表示するには、次のように入力します。
ls -l /etc/cron.weekly/
-rwxr-xr-x 1 root root 813 Feb 10 2019 man-db
出力が空の場合は、毎週のcronジョブがないことを意味します。
システムタイマー#
Systemdタイマーは、*.timer
で終わるユニットファイルです。 接尾辞を付けて、時間に基づいてサービスユニットを実行できるようにします。
systemdをinitシステムとして使用するLinuxディストリビューションでは、タイマーは標準のcronデーモンの代わりに使用されます。
マシン上のすべてのsystemdタイマーのリストを表示するには、次のコマンドを実行します。
systemctl list-timers
NEXT LEFT LAST PASSED UNIT ACTIVATES
Sun 2020-02-16 00:00:00 UTC 1h 53min left Sat 2020-02-15 17:04:11 UTC 5h 2min ago logrotate.timer logrotate.service
Sun 2020-02-16 00:00:00 UTC 1h 53min left Sat 2020-02-15 17:04:11 UTC 5h 2min ago man-db.timer man-db.service
Sun 2020-02-16 03:50:52 UTC 5h 44min left Sat 2020-02-15 17:04:11 UTC 5h 2min ago apt-daily.timer apt-daily.service
Sun 2020-02-16 06:12:38 UTC 8h left Sat 2020-02-15 17:04:11 UTC 5h 2min ago apt-daily-upgrade.timer apt-daily-upgrade.service
Sun 2020-02-16 18:44:56 UTC 20h left Sat 2020-02-15 17:16:10 UTC 4h 50min ago systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service
結論#
cronジョブとsystemdタイマーを一覧表示する方法を示しました。
ご不明な点がございましたら、お気軽にコメントをお寄せください。