$value ) if( $value['eid'] == $eid ) return $value; return null; } function RecommendedEntry_updateIndexFile( $eid_updated, $eid, $direction ) { $filename = '/var/www/VirtualDomain/kenji00.com/blog/recommend_data'; is_dir( $filename ) || mkdir( $filename ); $filename .= '/'. substr( $eid_updated, -1 ); is_dir( $filename ) || mkdir( $filename ); $filename .= sprintf( '/%d.txt', $eid_updated); file_exists( $filename ) || touch( $filename ); $fp = @fopen( $filename, 'r+' ); if( $fp ) { if( flock( $fp, LOCK_EX | LOCK_NB )) { $ret = ''; $not_found = 1; while( !feof( $fp ) && ( $buf = fgets( $fp ))) { list( $_eid, $_n0, $_n1 ) = split( "[\t\r\n]", $buf ); if( $eid == $_eid ) { $not_found = 0; $direction ? $_n1++ : $_n0++; } $ret .= sprintf( "%d\t%d\t%d\n", $_eid, $_n0, $_n1 ); } if( $not_found ) $ret .= sprintf( "%d\t%d\t%d\n", $eid, 1 - $direction, $direction); rewind( $fp ); fwrite( $fp, $ret, strlen( $ret )); } fclose( $fp ); } } function RecommendedEntry_incoming() { $eid_prev = $_COOKIE['mtrcmnd_eid']; if( isset( $eid_prev )) { if( $eid_prev != 166 && RecommendedEntry_getEntryData( $eid_prev )) { RecommendedEntry_updateIndexFile( 166, $eid_prev, 0 /*incoming_from*/ ); RecommendedEntry_updateIndexFile( $eid_prev, 166, 1 /*outgoing_to*/ ); } } else { RecommendedEntry_updateIndexFile( 166, 166, 0 /*incoming_from*/ ); } } RecommendedEntry_incoming(); function RecommendedEntry_outgoing() { setcookie( 'mtrcmnd_eid', 166, time() + 2592000, '/' ); } RecommendedEntry_outgoing(); function RecommendedEntry_initialize( $mode = 0 ) { global $RecommendedEntry_table; $RecommendedEntry_table = array(); $filename = '/var/www/VirtualDomain/kenji00.com/blog/recommend_data/'. substr( '166', -1 ). '/166.txt'; $fp = @fopen( $filename, 'r' ); if( $fp ) { if( flock( $fp, LOCK_SH | LOCK_NB )) { while( !feof( $fp ) && ( $buf = fgets( $fp ))) { list( $_eid, $_n0, $_n1 ) = split( "[\t\r\n]", $buf ); if( 166 == $_eid ) continue; else if( $mode == 1 ) $RecommendedEntry_table{$_eid} = $_n0; else if( $mode == 2 ) $RecommendedEntry_table{$_eid} = $_n1; else $RecommendedEntry_table{$_eid} = $_n0 + $_n1; } arsort( $RecommendedEntry_table, SORT_NUMERIC ); } fclose( $fp ); } } function RecommendedEntry_GetEntry( $_index ) { global $RecommendedEntry_table; foreach( $RecommendedEntry_table as $eid => $count ) { if( --$_index ) continue; $entry = RecommendedEntry_getEntryData( $eid ); if( $entry ) $entry['count'] = $count; return $entry; } } ?> /etc/cron.daily/clamscan の処理が重いので - 寝不足にて候(仮)
Jan
12
2009

/etc/cron.daily/clamscan の処理が重いので

Clam AV(Anti Virus)のDaily ScanがCPU(Disk I/O)を喰って重いので、とりあえずnice値を下げる。

#!/bin/bash

PATH=/usr/bin:/bin

# clamd update
yum -y update clamd > /dev/null 2>&1

# excludeopt setup
excludelist=/root/clamscan.exclude
if [ -s $excludelist ]; then
for i in `cat $excludelist`
do
if [ $(echo "$i"|grep \/$) ]; then
i=`echo $i|sed -e 's/^\([^ ]*\)\/$/\1/p' -e d`
excludeopt="${excludeopt} --exclude-dir=$i"
else
excludeopt="${excludeopt} --exclude=$i"
fi
done
fi

# signature update
freshclam > /dev/null

# virus scan
CLAMSCANTMP=`mktemp`
nice -n 19 clamscan --recursive --remove ${excludeopt} / > $CLAMSCANTMP 2>&1
[ ! -z "$(grep FOUND$ $CLAMSCANTMP)" ] && \

# report mail send
grep FOUND$ $CLAMSCANTMP | mail -s "Virus Found in `hostname`" harahoro.hirehare@gmail.com
rm -f $CLAMSCANTMP

ついでに、/etc/cron.daily/* の実行時間も変更。
サーバが米国中西部標準時(-0600)で動作しているので、9時間ほど後ろにずらしてみた。

# vi /etc/crontab

PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 13 * * * root run-parts /etc/cron.daily
22 13 * * 0 root run-parts /etc/cron.weekly
42 13 1 * * root run-parts /etc/cron.monthly

このエントリを読んだ人はこんなんも読んでいます

トラックバック(0)

トラックバックURL: http://blog.kenji00.com/MT/mt-tb.cgi/165

コメント(1)

そっと亀レス。
癌になってふと思ったのですが、例のリンク集作る
サイドビジネス。癌関係のブログへのリンクだけ
集めて「これで癌がなおる」とか「未承認薬OK」
とかいうバナー貼り付けたら、命かかってるやつら
ものすごくクリックするんじゃないかと思ったり
しました。

いや、どうでもいいんですけどね。失礼

コメントする

過去のエントリ(一覧)

最近のコメント

Powered by Movable Type 4.261
Creative Commons License
このブログはクリエイティブ・コモンズでライセンスされています。