Linux
 Computer >> コンピューター >  >> スマートフォン >> Linux

Linux/Unixの作業を自動化!crontabコマンドの使い方徹底ガイド

コンピューターの大きな利点のひとつは、人間がやりたくない単調で反復的な作業を、嫌な顔ひとつせずにこなしてくれることです。毎日のバックアップのような退屈なタスクは、決まった時刻に自動実行するようスケジュールし、自分の時間はもっと有意義なことに使うのが賢い選択でしょう。LinuxやUNIXには通常「crontab」というユーティリティが標準で搭載されています。この非常に便利なコマンドを使えば、指定した時刻にタスクを実行し、設定どおり繰り返すことができます。crontabでスケジュールされたタスクは「cronジョブ」と呼ばれます。

crontabコマンドを使えば、サーバーに対して「特定の月の特定の日の特定の分」にスクリプトを実行するよう指示できます。まずは、現在マシンに設定されているcronジョブを確認してみましょう。

設定済みのcronジョブを確認する

# crontab -l

何らかのcronジョブが設定されていれば、以下のような出力が表示されます。

0 6 * * * /opt/scripts/backup_script.sh

上記の設定は、毎日午前6時にシェルスクリプト「backup_script.sh」を実行するcronジョブを示しています。「*(アスタリスク)」はそのフィールドのすべての値を意味するため、日・月・曜日の各フィールドにあるアスタリスクは、「毎月の毎日」「毎年毎月」「週の毎日」に実行することを表します。最初と2番目のフィールドは「0分」「6時」、つまり午前6時に実行するよう指定しています。したがって、このcronジョブは「毎日・毎月・毎曜日の午前6時0分に/opt/scripts/backup_script.shを実行する」と読むことができます。

crontab設定の構造(アナトミー)

0 6 * * * /opt/scripts/backup_script.sh
|  |  |  |  |
|  |  |  |  |________________ 曜日(日曜=0)
|  |  |  |__________________ 月
|  |  |____________________ 日
|  |______________________ 時
|________________________ 分

cronジョブの追加・編集方法

新しいcronジョブを登録したり、既存のものを編集したりするには、次のコマンドを実行します。

# crontab -e

エディタが起動するので、そこでcronジョブの追加・編集・削除を行います。たとえば、毎週月曜日の午後3時45分にジョブを実行したい場合は、次のようなエントリを追加します。

45 15 * * 1 /opt/scripts/script.sh

カンマで複数の時刻を指定する

フィールド内にカンマ区切りで複数の値を指定することもできます。これは、1日に3回、8時間間隔でスクリプトを実行したいような場合に便利です。ただし、同じフィールド内の値の間にスペースを入れてはいけない点に注意してください。cronジョブのエントリは次のようになります。

0 1,9,17 * 2,11 * /opt/scripts/db_backup_script.sh

この例では、スクリプト「db_backup_script.sh」が2月と11月の毎日、午前1時・午前9時・午後5時に実行されます。カンマによる複数指定は、日・月・曜日の各フィールドでも同様に使えます。

覚えておきたい特殊文字列

crontabは数値だけでなく、いくつかの基本的な英語の文字列も理解できます。基本に慣れてきたら、次の文字列も試してみてください。

  • @reboot:システムの再起動時に一度だけ実行
  • @yearly:年に1回、年の初めに実行
  • @annually:@yearlyと同じ(年に1回)
  • @monthly:月に1回、月初めに実行
  • @weekly:週に1回、週の初めに実行
  • @daily:毎日1回、深夜0時に実行
  • @midnight:@dailyと同じ(深夜0時に実行)
  • @hourly:1時間に1回、毎時0分に実行

たとえば、毎晩深夜0時にスクリプトを実行したい場合、crontabの設定は次のようになります。

@midnight /opt/scripts/script.sh

「0 0 * * *」と数値で書く代わりに「@midnight」を使っても動作はまったく同じで、毎晩深夜0時にスクリプトが実行されます。数値表記よりもはるかに読みやすいのが魅力です。

ハイフンで範囲を指定する

ハイフン(-)を使えば、値の範囲指定も可能です。次のコマンドでは、「script.sh」が午前1時から午前6時まで、毎正時に実行されます。

0 1-6 * * * /opt/scripts/script.sh

まとめ

cronでできることはまだまだたくさんあります。多くのシステム管理者がcronを重宝しており、一度コツをつかめば非常に簡単に使える、強力なツールです。ただし、タスクのスケジュールを誤ると、思わぬ深刻な被害につながることもあるため、このツールは賢く使いましょう。crontabのmanページを読むことを強くお勧めします。また、コマンドを一度だけ予約実行できる「at」コマンドについても学んでおくと役立ちます。

  1. スマートフォンをテレビのリモコン代わりに使う方法【赤外線・アプリ対応の完全ガイド】

    スマートフォンといえば、通話やSNSでの友人とのつながり、ゲーム、動画視聴などに使うのが一般的ですが、実はもっと便利な使い方があります。そのひとつが「スマホをテレビのリモコンにする」という方法です。従来のリモコンを紛失してしまったり、故障してしまったりしても、手元にあるスマートフォンがあれば安心。お気に入りの番組を見たいときに、リモコンを探し回る必要はもうありません。スマートフォンをテレビのリモコンとして使う方法方法1:内蔵の赤外線(IR)機能を使ってテレビを操作する注意: この方法を使うには、スマートフォンに赤外線ポート(IRブラスター)が内蔵されている必要があります。お使いの端末に赤外線機

  2. スクリーン録画で生産性を向上させる方法|活用シーンとおすすめツールを徹底解説

    パソコンの作業効率を高めてくれるソフトウェアをお探しですか?そのリストに必ず加えておきたいのが、スクリーン録画(画面収録)ツールです。なぜスクリーン録画ソフトが必要なのでしょうか?また、どのような場面で活躍するのでしょうか?本記事では、スクリーン録画のメリットと具体的な活用法、さらにおすすめツールまで詳しくご紹介します。 なお、当サイトでは生産性向上に役立つおすすめのタイムトラッキング(時間管理)ソフトも紹介しています。こちらもぜひ併せてチェックしてみてください。 スクリーン録画ソフトがもたらす5つのメリット 1. チュートリアルや研修動画を簡単に作成できる 現在、業務の多くは複数のアプリケー