Home > linux Archive

linux Archive

UVC対応 オートフォーカスWEBカメラ CMS-V24SETSV 

サンワサプライの USBオートフォーカスカメラを買いました。
1年前に発売をされたカメラなので、旬ではありませんが問題なくLinuxでも使えます。
DSC_2806.jpg

USBオートフォーカスカメラはシグマAPO UVCA130AFWHをもっていますが、フォーカススピードはこちらのほうが速いですね。

SyslogやMaillogを毎日定期的にもっと簡単に監視できるようにしてみましょう。(改訂版)

  • Posted by: とし
  • 2008年5月 5日 22:55
  • linux

サーバーのログをメールで配信する方法です。

昔作ったこれの改定版です。

前のは、ログローテーションとか関係無しにとりあえずログを引っ張ってくるだけであまり機能的ではなかったのでGW中の時間のあるときに作り直しました。

内容としては前回と同じでシスログ・メールログ・ウェブ鯖のログをメールで毎日配信するってやつです。

昔作った部分の不具合部分を修正しました。

  • シスログ・メールログ1日から9日までが出力されない。
  • apacheログの検索結果が不完全な状態。
  • 月末(30日31日)の出力がされない。
  • 月初(1日)が表示されない。

 

下記スクリプトはログローテーションのタイミングが月単位の場合です。

週/日単位でログローテーションをされている方は変更が必要です。

定期的に実行させる為にcronを使うことになりますが、実行時間はログローテーションの実行後に行ってください。

 #!/bin/sh

LANG="en_US"   <-- 英語表示
declare -i day

##############################
#月日取得処理
##############################
m_flg="0"   <-- 月フラグ
m_mon=$(date "+%b")  <-- 今月の月取得
day=$(TZ=JST+15 date "+%e")  <-- 前日の日取得(取得形式:2桁)
mon=$(TZ=JST+15 date "+%b")  <-- 前日の月取得
a_day=$(TZ=JST+15 date "+%d")  <-- 前日日取得(取得形式:1桁)

##############################
#月日形式出力
##############################
if [ $day -gt 9 ]; then
    sys_day="$mon $day"   <--10日以上であれば月と日の間のスペースは1つ
else
    sys_day="$mon  $day"  <--10日未満であれば月と日の間のスペースは2つ
fi

apa_day="$a_day/$mon"  <--apache用月日出力

##############################
ログローテーションの一世代目のファイルを検索するかどうかの判定
検索の条件として当日と前日の月が違う場合は前日は前月の最終日となるので
ログローテーションされ対象日付けは一世代目ファイルに書き込まれる為。
前日が1日の場合は対象となる日付けの一部が一世代目ファイルに書き込まれる為。
※ログローテーションのタイミング:月単位の午前4時

if [ $m_mon = $mon ]; then
    m_flg="1"  <-- 当日と前日の月が同じであれば検索しない
fi
if [ $day = "1" ];then
    m_flg="0"  <-- 前日が1日であれば検索する
fi

#以下メールで送信される内容

(echo ""

echo "---Syslog----------------------------------------------------------"
if [ $m_flg = "0" ]; then  <-- 一世代ログを検索するかどうかの判定
    grep "$sys_day" /var/log/messages.1
fi
grep "$sys_day" /var/log/messages
echo "---Syslog_End------------------------------------------------------"

echo ""
echo "---Maillog---------------------------------------------------------"
if [ $m_flg = "0" ]; then
    grep "$sys_day" /var/log/maillog.1
fi
grep "$sys_day" /var/log/maillog
echo "---Maillog_End-----------------------------------------------------"

echo ""
echo "---Apache access_log-----------------------------------------------"
if [ $m_flg = "0" ]; then
    grep "$apa_day" /usr/local/apache2/logs/access_log.1
fi
grep "$apa_day" /usr/local/apache2/logs/access_log
echo "---Apache papanda.jp_End-------------------------------------------"

echo "" ) | mail -s ServerLog_Infomation[www.exsmple.jp] info@exsmple.com

SyslogやMaillogを毎日定期的にもっと簡単に監視できるようにしてみましょう。

  • Posted by: とし
  • 2004年6月21日 00:00
  • linux

毎日記録されるさまざまなログをメールで配信されるようにシェルスクリプトを組みます。

自宅サーバといえどもセキュリティー確保には毎日ログチェックをしたほうがいいに決まってる。でも、いちいちサーバに接続してコマンドを打つのも面倒くさい。もっといい方法ないかなぁって思いログをメールで配信することを思いつきました。

動作内容はSyslog/Maillogの中から当日のログを切り出し指定するメールアドレスへ配信としました。

【2008/05/05更新】まともに動くやつを作りました。http://blog1.papanda.jp/2008/05/syslogmaillog-1.html

 

#!/bin/sh

#Syslogの取得設定
( echo "---Syslog-----------------------------------------------"
grep "$(date +"%b %d")" /var/log/messages
echo "---Syslog_End-------------------------------------------"
echo ""

#Maillogの取得設定
echo "---Maillog---------------------------------------------"
grep "$(date +"%b %d")" /var/log/maillog
echo "---Maillog_End------------------------------------------"

#ログをメール配信する。
echo "" ) | mail -s ServerLog_Infomation info@exsmple.jp

Apacheのログを取得する場合はSyslogの取得設定の下に追加します。

#Apacheの取得設定
echo ""
echo "---Apache papanda.jp------------------------------------"
grep "$(date +"%d/%b")" /usr/local/apache/logs/access_log
echo "---Apache papanda.jp_End--------------------------------"

あとはCronで定期的に実行するように設定します。

これで設定は終わりですが、問題があります。それはログローテーションを行う時間によっては対象となるログを切り出せないことです。
この問題に関しては後々、解決したいと思います^^;

Index of all entries

Home > linux Archive

Search
Feeds

Return to page top