blog

テクニック|cronタイマータスクを使うためのヒント

このシンプルでパワフルなLinuxコマンドラインツールで、バックアップ、ファイルクリーンアップ、その他のタスクをスケジュールしましょう。...

Oct 22, 2025 · 5 min. read
シェア

このシンプルで強力なLinuxコマンドラインツールを使用して、バックアップ、ファイルのクリーンアップ、およびその他のタスクをスケジュールします。

コンピューター上のタスクを規則正しく、予測可能なスケジュールで実行し続けることは重要です。人間である以上、気が散ったり、頭の中がいっぱいになったり、休暇に入ったりして、やるべきことを思い出せなくなることがあります。コンピュータはスケジュール通りに物事を進めるのが得意ですが、コンピュータ上で行動を起こすとなると、人間がコンピュータをプログラムしなければなりません。

ある意味、cronシステムは初心者のための簡単なプログラミング入門です。あるファイルを編集することで、コンピューターにあなたがしたいことをさせることができます。ファイルがどこに保存されているか知る必要もありません。コンピュータに従わせたい「レシピ」の簡単なコマンドを入力して保存するだけです。それ以降、コンピュータは停止を指示されるまで、指定された時間にコマンドを実行します。

設計上、cronは複雑なシステムではありません。以下はあなたが知っておくべきことの一部です。

cron Cronとは?

cronコマンドはLinuxやUnixではどこにでもあるコマンドで、頻繁に模倣され、再発明されてきたため、スケジュール通りに実行されるものの総称に近いものになっています。cronは自動化の一形態であり、anacronやsystemdタイマーのように様々な実装やバリエーションがあるにもかかわらず、その構文やワークフローは何十年もの間、ほぼ一貫しています。

cronはプリンターやEメールのように""システムで動作します。プリンターやEメールがフェイクオフラインを使うことを知らなくても大丈夫です。フェイクオフラインファイルの要点は、あまり考える必要がないということです。Linuxシステムでは、/var/spoolディレクトリは、ユーザーが直接操作する必要のない、重要だが低レベルのファイルの中心的なハブとして設計されています。 var/spoolで管理される擬似オフラインの1つがcronテーブルです。 ユーザは自分のcrontabを編集、表示、削除することができます。とりわけ、ユーザはcrontabを使ってタスクをスケジュールすることができます。cronシステムはcrontabを監視し、crontabにリストされているジョブが、実行されるはずの時間に実行されることを確認します。

クーロン設定の編集

  1. export EDITOR=nano
  2. export VISUAL=kate

設定を更新した後、シェルセッションをリフレッシュします:

  1. $ source ~/.bashrc

これでお気に入りのエディタでcrontabを編集できます:

  1. $ crontab -e

マンデートの実施時期

cronシステムは基本的にカレンダーシステムです。分、時間、日、月、週の5つの異なる属性があり、cronにタスクを実行させる頻度を指示します。これらの属性の順番は固定で、必ずしも直感的ではありません。デフォルトでは、すべてが "always "または "every "に設定されていると理解できます。このコマンドは、touch /tmp/helloを1年365日毎時毎分に実行します:

  1. * * * * * touch /tmp/hello

この包括的なスケジュールは、各プロパティに特定の定義を設定することで制限することができます。毎時30分にタスクを実行させるには、分を:

  1. 30 * * * * touch /tmp/hello

このディレクティブはさらに特定の時間で制約することができます。毎朝3:30にタスクを実行するようにします:

  1. 30 3 * * * touch /tmp/hello
  1. * * touch /tmp/hello

月は1月から12月まで、週は日曜日から土曜日まで設定できます。このタスクは4月の月曜日の3:15に実行されます:

  1. 1 touch /tmp/hello

インクリメントの設定

これらの設定はすべて固定時間にマッチします。cron記法を使って、例えば15分ごとなど、一定時間後に実行するタスクを設定します:

  1. */15 * * * * touch /tmp/hello

3日目の午前10時にミッションを実行:

  1. * 10 */3 * * touch /tmp/hello

6時間ごとにミッションを実行:

  1. * */6 * * * touch /tmp/hello

Cron

最近のcron実装には、以下のような一般的なスケジュールに対する便利な省略記法が追加されています:

  • export EDITOR=nano
  • export VISUAL=kate
  • $ source ~/.bashrc
  • $ crontab -e
  • 毎年

cronタスクのリスト

* * * * * touch /tmp/hello 使用して、スケジュールされたcronタスクのリストを表示します:

  1. $ crontab -l
  2. 1 touch /tmp/hello

crontabの削除

crontabタスクが不要な場合は、-rオプションを使って削除できます:

  1. $ crontab -r -i

iオプションは.ファイルを削除するときに確認を求めます。

クロンにできること

cronの使い方を知っていることと、何に使われるかを知っていることは別のことです。典型的な使用例はバックアップスケジュールです。コンピューターが一日中、あるいは一日中、一晩中稼働している場合、重要なパーティションのバックアップを定期的に行うことが可能です。私は毎朝3時にプライマリデータパーティションでrdiff-backupというバックアッププログラムを実行します:

  1. $ crontab -l | grep rdiff
  2. * 3 * * * rdiff-backup /data/ /vault/
  1. $ crontab -l | grep slack
  2. * 14 * * 5 sudo slackpkg update

また、3日ごとに15:00にAnsibleスクリプトを実行しています:

  1. $ crontab -l | grep ansible
  2. * 15 */3 * * ansible-playbook /home/seth/Ansible/cleanup.yaml

cronの設定を覚えておいてください

分、時、日、月、星

分、時、日、月、星

分、時、日、月、星

さらに、 、必要なときにすぐに使えるようにしましょう!

via:

Read next