このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
【Linux】crontabファイルの表示・編集・削除:crontabコマンド

crontabコマンドの概要
Linuxシステムにおいて、定期的なタスクの自動実行は非常に重要です。例えば、定期的なバックアップ、ログのローテーション、システムメンテナンスなど、これらのタスクを手動で行うのは手間がかかり、ヒューマンエラーのリスクもあります。そこで役立つのがcronジョブです。cronジョブを管理するための主要なツールがcrontab
(クロンタブ、あるいはクローンタブ、クーロンタブ)コマンドです。このコマンドを使用することで、ユーザーは自分のcrontabファイルを表示、編集、削除することができます。
【構文】crontab [オプション]

主なオプションと説明
オプション | 説明 |
---|---|
-e | ユーザーのcrontabファイルを編集します。 |
-l | ユーザーのcrontabファイルを表示します。 |
-r | ユーザーのcrontabファイルを削除します。 |
ユーザーのcrontabファイルの項目
ユーザーのcrontabファイルには、以下の項目が含まれます。
フィールド | 意味 | 値の範囲 |
---|---|---|
分 | 実行する分 | 0-59 |
時 | 実行する時間 | 0-23 |
日 | 実行する日 | 1-31 |
月 | 実行する月 | 1-12 または Jan-Dec |
曜日 | 実行する曜日 | 0-7 または Sun-Sat |
コマンド | 実行するコマンド | 任意のコマンドやシェルスクリプト |
コマンドの使用例
1.crontabファイルの表示
まず、現在のユーザーのcrontabファイルを表示し、crontabファイルが存在しないことを確認します。
・「crontab -l
」コマンドを実行します。
この「no crontab for user01」メッセージは、現在のユーザーに対してcrontabファイルがまだ定義されていないことを示します。
user01@ubuntu-vm:~$ crontab -l
no crontab for user01
2.crontabファイルの編集
次に、1分ごとに日時を出力するcrontabファイルを作成し、/home/user01/test.log
に追記します。※「/home/user01/test.log」の「user01」部分は、ログインしているユーザー名に置き換えてください。
crontabファイルの編集
・「crontab -e
」コマンドを実行します。
user01@ubuntu-vm:~$ crontab -e
エディタが開くので、以下の内容を追加
エディタが開くので、以下の内容を末尾に追加します。※起動するエディタはLinuxのディストリビューションで異なります。
* * * * * date >> /home/user01/test.log
日時を1分ごとに出力します。出力先は、user01のホームディレクトリである「/home/user01」のtest.log
ファイルに追記していきます。
【crontabファイルの内容】
GNU nano 6.2 /tmp/crontab.28jguj/crontab
# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
(省略)
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h dom mon dow command
* * * * * date >> /home/user01/test.log
変更を保存してエディタを終了
「Ctrl」+「S」キーで保存して、「Ctrl」+「X」キーでnanoエディタを終了させます。

3.crontabファイルの表示
・「crontab -l
」コマンドを実行します。
再度、crontabファイルを表示し、crontabファイルが作成されたことを確認します。この内容は、1分ごとにdate
コマンドの出力を/home/user01/test.log
に追記する設定がされたこと意味します。
user01@ubuntu-vm:~$ crontab -l
# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
(省略)
#
# m h dom mon dow command
* * * * * date >> /home/user01/test.log
4.test.logの確認
「test.log」を確認します。
・「cat test.log
」コマンドを実行します。
日時が「test.log」ファイルに追記されていることが分ります。
user01@ubuntu-vm:~$ cat test.log
2024年 7月 14日 日曜日 22:59:01 JST
2024年 7月 14日 日曜日 23:00:01 JST
数分、待機しいてから「test.log」を確認します。
・「cat test.log
」コマンドを実行します。
日時が1分ごとに自動的に「test.log」ファイルに追記されていることが分ります。
user01@ubuntu-vm:~$ cat test.log
2024年 7月 14日 日曜日 22:59:01 JST
2024年 7月 14日 日曜日 23:00:01 JST
2024年 7月 14日 日曜日 23:01:01 JST
2024年 7月 14日 日曜日 23:02:01 JST
5. crontabファイルの削除
次に、crontabファイルを削除します。
・「crontab -r
」コマンドを実行します。
user01@ubuntu-vm:~$ crontab -r
6.crontabファイルの削除の確認
再度、crontabファイルを表示し、削除されたことを確認します。
・「crontab -l」コマンドを実行します。
この「no crontab for user01」メッセージは、crontabファイルが削除されたことを示します。
user01@ubuntu-vm:~$ crontab -l
no crontab for user01
7.この演習で作成したファイルを削除します。
・「rm test.log
」コマンドを実行し、「ls
」コマンドで削除されたかどうかを確認します。
user01@ubuntu-vm:~$ rm test.log
user01@ubuntu-vm:~$ ls
snap テンプレート ドキュメント ピクチャ 公開
ダウンロード デスクトップ ビデオ ミュージック
まとめ
crontab
コマンドは、ユーザーの定期的なジョブを管理するために使用される重要なツールです。主なオプションとして、-e
(編集)、-l
(表示)、-r
(削除)があり、これらを使用してcrontabファイルを効率的に管理できます。具体的な使用例として、1分ごとに日時を出力する設定を行い、その設定を確認し、最終的に削除する手順を示しました。
オプション | 説明 |
---|---|
-e | ユーザーのcrontabファイルを編集します。 |
-l | ユーザーのcrontabファイルを表示します。 |
-r | ユーザーのcrontabファイルを削除します。 |
このように、crontab
コマンドを活用することで、定期的なタスクの管理と自動化を簡単に行うことができます。