cron & シェルスクリプト
メインPCを毎朝目覚まし代わりに用いていることを考えて、毎日指定時間になると起動するようにします。また、週一の間隔で設定ファイルやログなどをバックアップさせます。

このような自動起動にはcronを利用します。

■ログインしているユーザのcrontabファイル編集
$ crontab -e  これでユーザごとのcronを設定できます。
設定書式は "分 時 日 月 曜日 コマンド"
 利用できる文字は
分 0~59,*
  時 0~23,*
  日 1~31,*
  月 1~12 or jan~dec ,*
  曜日 0~7 [0,7は日曜日] or sun~sat .*
  コマンド 有効なコマンドを記述します。空白を含むことも可能ですが、標準のBourne Shellの書式に従って記述します。
※*を使用すると全指定の意味


#MainMachineへのWakeOnLan起動
#毎日6:30に起動させる
30 6 * * * /var/bkup/sh/wakeonlan.sh
#ファイルバックアップ
#週一(FRI)
0 4 * * 5 /var/bkup/sh/bkup.sh

cron の設定ガイド
http://www.express.nec.co.jp/linux/tech/knowledge/system/crond.html
cron
http://tech.bayashi.net/svr/doc/cron.html
cronの設定
http://park15.wakwak.com/~unixlife/linux/sys-cron.html


■バックアップ用シェルスクリプト
上記cronで指定しているbkup.shの内容です。
■ファイル構成
bkup.sh :バックアップ用シェルスクリプト本体
bksrc.dat:バックアップ元ファイルパス設定ファイル
■シェルスクリプト内容
#! /bin/sh
#バックアップ元ファイル読み込みパスと保存ファイル名読み込み、ループ開始
cat bksrc.dat | grep -v \# | while read DIR_NAME FILE_NAME 
do
BKSRC=.$DIR_NAME
#日付取得し変数に代入(コマンド変数のため`が付く)
TIMESET=`date +%y%m%d`
#バックアップ先ファイル名を設定 設定ファイルにあるファイル名+日付.tar.gzする
BKDIR=/var/bkup/$FILE_NAME.$TIMESET.tar.gz
cd /
#tarコマンドで元ディレクトリを圧縮
tar zcf $BKDIR $BKSRC
#成功したらその旨を表示かつ、ログに保存
if [ $? = 0 ]; then
logger "Backup OK $BKDIR"
echo "Backup OK $BKDIR"
else
logger "Backup NG $BKDIR"
echo "Backup NG $BKDIR"
fi
done
■設定ファイルの書式
バックアップ元ディレクトリ名 バックアップ先ファイル名
例:
/etc etc
/var/log var_log
/var/bkup/pass var_bkup_pass
/var/bkup/sh var_bkup_sh
/usr/local/dice
[PR]
by jehoshaphat | 2006-03-24 12:15 | Linux | Trackback(1) | Comments(0)
トラックバックURL : https://jehupc.exblog.jp/tb/3063146
トラックバックする(会員専用) [ヘルプ]
※このブログはトラックバック承認制を適用しています。 ブログの持ち主が承認するまでトラックバックは表示されません。
Tracked from Shoulder.jp at 2006-05-31 23:32
タイトル : cronでの定期バックアップ
定期的にmysqlのDBをバックアップするためのシェルを作る。#!/bin/bash/usr/local/mysql/bin/mysqldump --opt 【dbの名前】 -uroot > 【バックアップファイル名(フルパス)】これを、mysql_backup.shと名づけて、毎日1回自動的に動くように/etc/cron.diaryへ配置。これでcronで自動的に毎日1回シェルを叩いてくれる。時間の設定は、/etc/crontab にて02 4 * * * root run-parts /etc/c...... more


<< DiCE WakeOnLan >>