LAMPでWebシステムを開発中です。システム都合で夜間バッチ処理(MySQLのテーブル退避等のDB処理)を行う必要があります。 

LAMP環境でバッチを行う場合、一般的に「どの様な言語で」「どの様なスケジューラで」行うのでしょうか。 
また出来るだけ無料で使用が可能なスケジューラなどあればお教え頂けると助かります。 

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

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2005/08/03 16:00:29
  • 終了:--

回答(2件)

id:dev_zer0 No.1

dev_zer0回答回数332ベストアンサー獲得回数252005/08/03 16:12:57

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

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

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

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

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

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


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

id:kouayukou

なるほどです。

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

2005/08/03 16:19:50
id:dev_zer0 No.2

dev_zer0回答回数332ベストアンサー獲得回数252005/08/03 17:44:20

ポイント50pt

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


これは、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時頃にバックアップファイルが作られていたら完了です


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

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

id:kouayukou

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

感覚がつかめました。

2005/08/03 18:01:18

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません