人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

LAMPでWebシステムを開発中です。システム都合で夜間バッチ処理(MySQLのテーブル退避等のDB処理)を行う必要があります。
LAMP環境でバッチを行う場合、一般的に「どの様な言語で」「どの様なスケジューラで」行うのでしょうか。
また出来るだけ無料で使用が可能なスケジューラなどあればお教え頂けると助かります。

【環境】
Vine Linux 3.1、Apache2.0、MySQL 4.1.13 、PHP4.3.10です。

●質問者: kouayukou
●カテゴリ:コンピュータ 科学・統計資料
✍キーワード:2.0 dB Lamp MySQL Vine Linux
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● dev_zer0
●0ポイント

http://www.linux.or.jp/JM/html/cron/man8/cron.8.html

Manpage of CRON

指定された時刻にコマンドを実行するデーモンはLinuxでは標準で用意されてます。

http://www.linux.or.jp/JM/html/GNU_bash/man1/bash.1.html

Manpage of BASH

また、手作業でコマンドを実行させるのを自動化したいだけならbashで十分です。

http://www.att.or.jp/perl/man/

Perl5 man in Japanese (???{????Perl man)

少し複雑なことをしたいならperlがいいと思います。

bash/perlともにLinuxで標準で用意されてます。


つまり、コマンドライン(CUI)で良ければもう用意されてます。

◎質問者からの返答

なるほどです。

よければサンプルを提供して頂けるととても助かります。


2 ● dev_zer0
●50ポイント

http://www.linux.or.jp/JM/html/cron/man1/crontab.1.html

Manpage of CRONTAB

具体的なサンプルということなので、まずバッチ処理のサンプルシェルを作成します。


これは、hoge配下のファイルをtar-gzで固めて

bak配下に日付のファイル名で置きます。

何らかのエラーが発生した場合、log配下に日付のファイル名でエラーログを出力します。

---- サンプルシェルここから ----

#!/bin/bash

# システム日付を元にファイル名を作成する

file=$(date ’+%Y%m%d’)

# ログファイル名を作成する

log=log/${file}.log

# hogeディレクトリ配下をバックアップする

tar -cf - hoge 2>> ${log} | gzip > bak/${file}.tar.gz 2>> ${log}

exit 0

----- サンプルシェルここまで ----

これをbatch.shとして、実行権限を与えて、実行し、正しい動作をすることを確認します。

正しい動作をすることが確認出来たらcronに登録します。

crontab -l

と実行して、batch.shがcronに登録されてないことを確認したら

crontab -e

として、cronのスケジュールを設定します

0 3 * * 1-5 batch.sh

ここでは土日を除く曜日の朝3時にbatch.shを起動させるように設定しました。

左から分、時、日、月、曜日、コマンドとなっています。

設定が終了したら

crontab -l

をもう一度行い、設定が反映されていることを確認します。

あとは、3時頃にバックアップファイルが作られていたら完了です


で、よろしいでしょうか?

一応、エラーの時には管理者にメールを投げたりも出来るんですが、サンプルなのであまり複雑な処理はしませんでした。

◎質問者からの返答

詳しいサンプルをどうもありがとうございます。

感覚がつかめました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ