Linuxノウハウ

「Linux」で「cron」を使用してジョブをスケジュールするには

Jack Wallen (Special to ZDNET.com) 翻訳校正: 編集部

2023-01-19 07:45

 「Linux」は地球上で最も柔軟性に優れたOSの1つである。Linuxでできないことはほとんどない。単純なコマンドラインツールを使用してタスクを自動化することさえ可能だ。

 そのツールは「cron」と呼ばれ、Linux OSのジョブをスケジュールする機能を提供する。

 例えば、「Documents」(ドキュメント)フォルダー内のすべてをバックアップする簡単なバックアップスクリプトを作成したとしよう。このスクリプトは、backup.shという名前で、以下のような感じだ。

#!/bin/bash

# What you want to backup.(バックアップしたいもの) 
backup_files="/home/$USER/Documents"

# Where you want to backup to.(バックアップ先)
dest="/backup"

# Create an archive filename.(アーカイブのファイル名を作成する)
day=$(date +%A)
hostname=$(hostname -s)
archive_file="$hostname-$day.tgz"

# Backup the files using tar.(tarを使用してファイルをバックアップする)
tar czf $dest/$archive_file $backup_files

 そのスクリプトを/usr/local/binに保存して、以下のコマンドで適切な実行権限を付与する。

sudo chmod u+x /usr/local/bin/backup.sh

 このバックアップスクリプトは、手動で毎日または毎週実行する代わりに、cronを使用して自動化することが可能だ。以下でその方法を紹介する。

cronジョブを作成する方法

1. ターミナルウィンドウを開く

 ターミナルウィンドウをまだ開いていない場合は、今すぐ開いてほしい。

2. 編集するcrontabファイルを開く

 cronシステムは、cronジョブ用の独自のエディターを備えている。crontabを編集モードで開くには、以下のコマンドを実行する。

crontab -e

 crontab -eコマンドを今回初めて実行する人は、デフォルトのエディターを選択する必要がある。筆者のお薦めは、最も使いやすいLinuxテキストエディターである「nano」だ。

3. 新しいcronジョブを作成する

 ファイルの最後に、新しいcronジョブのエントリーを作成する。このステップは多少ややこしい。使用する時刻/日付は、非常に具体的な形式で表される。時刻と日付には、分(0~59)、時(0~23)、日(1~31)、月(1~12)、曜日(0~6。ただし、Sunday、Monday、Tuesdayなどを使用することも可能で、Sundayは0、7、Sundayで表すことができる)の5つのエントリーがある。毎週日曜日の午後11時にバックアップを実行したい場合、crontabの時刻/日付エントリーは0 23 * * 0となる。そのcronジョブを毎週金曜日の午後11時59分に開始したい場合、エントリーは59 23 * * 5となる。

 土曜日の午後11時59分に実行する場合の完全なcronエントリーは、以下のようになる。

59 23 * * 5 /usr/local/bin/backup.sh > /dev/null 2>&1

 エントリーの> /dev/null 2>&1の部分は何なのだろうか。簡単に説明すると、スクリプトからの出力がある場合、それは抑制されなければならない。そうしないと、エラーが発生する可能性があるからだ。そのため、>を使用して、すべての出力を/dev/null(システムのゴミ箱のようなもの)に送信し、2>&1によって、すべてのエラーの送信先をcronに指示している。

 「Ctrl」+「X」でファイルを保存して閉じる。crontabファイルを保存すると、ジョブの準備が整い、設定した時刻に実行される。ジョブを最初に実行する前に、スクリプトをテストして、エラーなしで完了するか確認しておくことをお薦めする。これは、backup.shコマンドで実行可能だ。

 cronの機能、そして、cronを使用して、Linux OS用に作成したスクリプトを簡単に自動化する方法の説明は、以上である。

提供:Wright Studio -- Shutterstock
提供:Wright Studio -- Shutterstock

この記事は海外Red Ventures発の記事を朝日インタラクティブが日本向けに編集したものです。

ZDNET Japan 記事を毎朝メールでまとめ読み(登録無料)

ホワイトペーパー

新着

ランキング

  1. セキュリティ

    初心者にも優しく解説!ゼロトラストネットワークアクセスのメリットと効果的な導入法

  2. ビジネスアプリケーション

    改めて知っておきたい、生成AI活用が期待される業務と3つのリスク

  3. ビジネスアプリケーション

    ITR調査結果から導くDX浸透・定着化-“9割の国内企業がDX推進中も成果が出ているのはごく一部”

  4. セキュリティ

    「iPhone」の業務活用を促進!セキュリティ対策で必ず押さえておきたいポイントとは?

  5. ビジネスアプリケーション

    Google が推奨する生成 AI のスタートアップガイド、 AI を活用して市場投入への時間を短縮

ZDNET Japan クイックポール

所属する組織のデータ活用状況はどの段階にありますか?

NEWSLETTERS

エンタープライズコンピューティングの最前線を配信

ZDNET Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]