0Pricing
Linux Command Line & Bash Scripting Mastery · レッスン

Cronによるタスクのスケジュール設定

「cron」ユーティリティを使って、指定した間隔や時刻にスクリプトやコマンドを自動実行する方法を身につけます。

「Cronによるタスクのスケジュール設定」はCoddyKit上の無料Linux Command Line & Bash Scripting Masteryレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはLinux Command Line & Bash Scripting Mastery学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Linux Command Line & Bash Scripting Masteryコースには全4レッスンが含まれています。

cronでタスクを自動化する

自動化の世界へようこそ。このレッスンでは、Linuxで指定した時刻にコマンドやスクリプトを自動実行できる強力なユーティリティ、cronについて学びます。

毎日のバックアップや毎時のシステムチェックを、何も操作せずに設定できると想像してください。それがcronの役割です。

個人用crontabファイル

Linuxシステムの各ユーザーには、それぞれ専用のcrontab(cronテーブル)ファイルがあります。スケジュールしたタスクはすべてここに保存します。

個人用のcrontabを編集するには、crontab -eコマンドを使用します。デフォルトのテキストエディターでファイルが開き、新しいジョブを追加できます。

crontabエントリ:時刻フィールド

crontabエントリは6つの部分で構成されます。最初の5つはコマンドをいつ実行するかを定義し、スペースで区切られます。

  • 分:0-59
  • 時:0-23(0は午前0時)
  • 日:1-31
  • 月:1-12(またはJan-Dec)
  • 曜日:0-7(0または7は日曜日、1は月曜日)

crontabエントリ:コマンド

crontabエントリの6番目で最後の部分は、実行したいコマンドまたはスクリプトです。

ここでは、コマンドやスクリプトに絶対パスを使用することが重要です(例:pythonだけでなく/usr/bin/python)。cronジョブは最小限の環境で実行されるため、普段のPATHが利用できない場合があります。

crontabで使う特殊文字

cronでは、特殊文字を使って柔軟なスケジュールを設定できます。

  • *(アスタリスク):指定可能なすべての値に一致します(例:毎分、毎時)。
  • ,(カンマ):値のリストを区切ります(例:分の1,15は1分と15分)。
  • -(ハイフン):値の範囲を指定します(例:9-17は9時から17時)。
  • /(スラッシュ):間隔を指定します(例:*/10は10分ごと)。

定義済みスケジュールの短縮記法

よく使うスケジュールには、最初の5つの時刻フィールドを置き換えられる便利な短縮記法があります。

  • @reboot:システムの再起動後に1回実行します。
  • @yearly(または@annually):年に1回実行します(0 0 1 1 *)。
  • @monthly:月に1回実行します(0 0 1 * *)。
  • @weekly:週に1回実行します(0 0 * * 0)。
  • @daily(または@midnight):日に1回実行します(0 0 * * *)。
  • @hourly:1時間に1回実行します(0 * * * *)。

実践:簡単なスクリプトをスケジュールする

あいさつを記録する簡単なスクリプトを作成し、毎日午前10時に実行するようスケジュールしてみましょう。

  1. スクリプトを作成する(例:~/greet.sh):
  2. 実行可能にする:chmod +x ~/greet.sh
  3. crontabに追加する(crontab -e):
    0 10 * * * /home/user/greet.sh
    このエントリは、分が0、時が10(午前10時)で、毎月の毎日、毎月、毎曜日に/home/user/greet.shを実行することを意味します。
#!/bin/bash
# This script logs a greeting to a temporary file.
echo "Hello from Cron! The time is $(date)" >> /tmp/cron_greeting.log

cronジョブを管理する

cronジョブを追加したら、管理する必要があります。

  • 現在のcrontabエントリを一覧表示する:crontab -l
  • crontabエントリをすべて削除する(元に戻せないため、十分注意して使用してください):crontab -r

変更後は必ずcrontab -lでcrontabを確認し、エントリが正しいことを確かめてください。

cronの環境変数

cronジョブは最小限の環境で実行されることを覚えておいてください。そのため、対話型シェルと同じ環境変数(PATHなど)が設定されていないことがよくあります。

スクリプトが特定のコマンドに依存する場合は、コマンドの絶対パスを使用するか、必要な環境変数をcrontabファイルの先頭で直接定義します。たとえば、PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/binのように指定します。

crontab構文チャレンジ

/home/user/daily_report.shという名前のスクリプトを、平日(月曜日から金曜日)の毎朝9時15分に実行する必要があります。正しいcrontabエントリはどれですか?

振り返り:cronスケジュールを習得する

よくできました。タスクをスケジュールするためのcronの基本を習得しました。

  • crontabファイルと、crontab -eで編集する方法を学びました。
  • 時刻フィールドとコマンドを含む、cronエントリの6つのフィールドを理解しました。
  • 柔軟なスケジュール設定に使う特殊文字と定義済みの短縮記法を確認しました。
  • crontab -lとcrontab -rでジョブを管理する方法を学びました。
  • cronの環境における絶対パスと環境変数の重要性も学びました。

さあ、タスクを自動化しましょう。

よくある質問

「Cronによるタスクのスケジュール設定」レッスンは無料ですか?

はい。「Cronによるタスクのスケジュール設定」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Linux Command Line & Bash Scripting Masteryコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Linux Command Line & Bash Scripting Masteryコースには全4レッスンが含まれています。

「Cronによるタスクのスケジュール設定」で何を学びますか?

「cron」ユーティリティを使って、指定した間隔や時刻にスクリプトやコマンドを自動実行する方法を身につけます。 ブラウザで直接実行するハンズオンコードでLinux Command Line & Bash Scripting Masteryを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Linux Command Line & Bash Scripting Masteryを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのLinux Command Line & Bash Scripting Masteryは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「Cronによるタスクのスケジュール設定」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このLinux Command Line & Bash Scripting Masteryレッスンでコードを書いて実行できますか?

はい。すべてのLinux Command Line & Bash Scripting Masteryレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. Cronによるタスクのスケジュール設定
  2. システム管理の自動化
  3. 高度なスクリプティングプロジェクト
  4. ログローテーションとクリーンアップの自動化
← Linux Command Line & Bash Scripting Masteryに戻る