MIRACLE

メールサービス申込 ユーザー登録&ログイン パートナー情報
お問い合わせ FAQ サイトマップ
MIRACLE LINUXの特長 製品紹介 サービス案内 購入 サポート 技術フォーラム

テクノロジー情報


Linux技術トレーニング 基本管理コース II

第3章 バックアップ/ リストア


5. ジョブスケジューラ
5-1. ジョブスケジューラー
  • cronを用いてバックアップのスケジューリング
  • cronデーモンの起動/停止
    # /sbin/service crond start
    # /sbin/service crond stop

ジョブスケジューラーによるバックアップの採取

Linuxのスケジューラーは、指定された日付や時刻に自動的にジョブを実行するような設定が可能です。システム管理者はタスクの自動化によって、定期的にバックアップを実行するなどが可能になります。
ジョブを特定の日時で繰り返し実行させるcron について解説します。

cronデーモンの起動と停止

cronを使用するには、cronの実体であるデーモンcrond を起動する必要があります。
crond の起動/停止スクリプトは/etc/rc.d/init.d/crond となっています。起動スクリプトのオプションでは、起動(start)、停止(stop)、再起動(restart)、現在の状況を確認(status)を指定できます。

crondの再起動
# /sbin/service crond restart

5-2. cronの設定ファイル
cronの設定ファイル【1】
  • /var/spool/cron/ユーザー名
  • /etc/crontab
  • /etc/cron.d
  • /etc/cron.hourly/
  • /etc/cron.daily/
  • /etc/cron.weekly/
  • /etc/cron.monthly/
crondは毎分cron設定ファイルに変更がないかをチェックし、変更があった場合には変更を反映させる


cronの設定ファイル【2】   /var/spool/cron/ユーザー名
  • ユーザー毎に設定できるファイル
  • ファイルを作成・削除・閲覧するにはcrontabコマンド使用
    crontab [-u user] {-e|-l|-r}
    • -u user  userで指定したユーザーのcrontabファイルを操作の対象とする。このオプションはrootユーザーのみ使用
    • -e  crontabを対話的に編集する。通常viエディタが起動して、設定ファイルを編集
    • -l  crontabファイルの内容を表示
    • -r  crontabファイルを削除

/var/spool/cron/ユーザー名
# /usr/bin/crontab -u root -e

例では/var/spool/cron/rootファイルが作成され、viで編集することができます。
このファイルに、いつ、もしくはどれくらいの間隔で指定したコマンドを実施するか記述します。

crontabファイルの書式
分 時 日 月 曜日 コマンド
  • 分 --- 0〜59
  • 時 --- 0〜23
  • 日--- 1〜31
  • 月--- 1〜12
  • 曜日--- 0(日曜)〜6(土曜)
複数の値を指定する場合は「,」、間隔を指定する場合は「/」、範囲を指定する場合は「-」を使います。
毎日23:30にバックアップを実行
30 23 * * * /usr/bin/find /home | /bin/afio -ovZ -L  
/tmp/full.log /dev/nst0
10分ごとにバックアップを実行
*/10 * * * * /usr/bin/find /home | /bin/afio -ovZ -L 
/tmp/full.log /dev/nst0
9時、11時、13時、15時、17時のそれぞれ0分、15分、30分、45分にバックアップを実行
0,15,30,45 9-17/2 * * * /usr/bin/find /home | /bin/afio -ovZ -L 
/tmp/full.log  /dev/nst0

cronの設定ファイル【3】   /etc/crontab他
  • /システム用に設定できるファイル(rootユーザーのみ)
  • /etc/crontab
    • ジョブスケジュールのメイン設定ファイル
      このファイルには、「cron.monthly」、「cron.weekly」、「cron.daily」、「cron.hourly」配下のファイルを指定時に実行する指示が記述

/etc/crontab
SHELL=/bin/bash 
PATH=/sbin:/bin:/usr/sbin:/usr/bin       ←あらかじめ設定されている部分
MAILTO=root                   (ここから)
HOME=/                     
# run-parts                   
01 * * * * root run-parts /etc/cron.hourly   
02 4 * * * root run-parts /etc/cron.daily    
22 4 * * 0 root run-parts /etc/cron.weekly   
42 4 1 * * root run-parts /etc/cron.monthly  ←(ここまで)
        ↓ユーザー名
* */12 * * * root etc/cron.hourly/backup    ←新たに追加

構文はcrontabコマンドの構文と似ていて、「曜日」と「コマンド」の間に「ユーザー」が入るだけです。
また、環境変数MAILTOで指示されたメールアドレスに対して、実行結果をメールで送ります。MAILTOがない場合は、ファイルの所有者にメールが送られます。メールを受け取りたくない場合には、MAILTO=‘’ または MAILTO=“” と指定することで受け取らないように設定できます。

/etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly, /etc/cron.monthly

これらのディレクトリ配下のファイルは、/etc/crontabファイルによって呼び出されて、指定された時間にジョブを実行します。ディレクトリ配下のファイルはいずれもシェルスクリプトである必要があります。
(例)/etc/crontabファイルで新たに追加した
「 * */12 * * * root etc/cron.hourly/backup 」部分の「/etc/cron.hourly/backup」ファイルで設定した内容

/usr/bin/find /home | /bin/afio -ovZ -L /tmp/full.log 
/dev/nst0

この場合、/etc/crontabファイルで呼び出された「/etc/cron.hourly/backup」ファイル内のafioコマンドを12時間ごとに実施することになります。

/etc/cron.d

cronタスクを毎時間、毎日、毎週、毎月以外の予定で実行する必要がある場合は、そのスクリプトをこのディレクトリに追加できます。このディレクトリ内のファイルの構文はすべて/etc/crontabと同じです。


第3章 4へ 第4章 1へ

■この資料の評価をお願いします。
とても参考になった
参考になった
どちらでもない
あまり参考にならなかった
まったく参考にならなかった

コメントがある場合は以下に記述してください。技術資料として取り上げてほしいテーマも受け付けています。

以下は任意です。

お名前(フルネーム) :
会社名 :
メールアドレス :
 

会社情報 採用情報 個人情報保護方針 情報セキュリティ基本方針 商標等取り扱い事項 English
Copyright(c)2000-2015 MIRACLE LINUX CORPORATION. All Rights Reserved.