「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
この記事は海外Red Ventures発の記事を朝日インタラクティブが日本向けに編集したものです。