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」コマンドについても学んでおくと役立ちます。
-
スマートフォンをテレビのリモコン代わりに使う方法【赤外線・アプリ対応の完全ガイド】
スマートフォンといえば、通話やSNSでの友人とのつながり、ゲーム、動画視聴などに使うのが一般的ですが、実はもっと便利な使い方があります。そのひとつが「スマホをテレビのリモコンにする」という方法です。従来のリモコンを紛失してしまったり、故障してしまったりしても、手元にあるスマートフォンがあれば安心。お気に入りの番組を見たいときに、リモコンを探し回る必要はもうありません。スマートフォンをテレビのリモコンとして使う方法方法1:内蔵の赤外線(IR)機能を使ってテレビを操作する注意: この方法を使うには、スマートフォンに赤外線ポート(IRブラスター)が内蔵されている必要があります。お使いの端末に赤外線機
-
スクリーン録画で生産性を向上させる方法|活用シーンとおすすめツールを徹底解説
パソコンの作業効率を高めてくれるソフトウェアをお探しですか?そのリストに必ず加えておきたいのが、スクリーン録画(画面収録)ツールです。なぜスクリーン録画ソフトが必要なのでしょうか?また、どのような場面で活躍するのでしょうか?本記事では、スクリーン録画のメリットと具体的な活用法、さらにおすすめツールまで詳しくご紹介します。 なお、当サイトでは生産性向上に役立つおすすめのタイムトラッキング(時間管理)ソフトも紹介しています。こちらもぜひ併せてチェックしてみてください。 スクリーン録画ソフトがもたらす5つのメリット 1. チュートリアルや研修動画を簡単に作成できる 現在、業務の多くは複数のアプリケー