似非サーバー管理」カテゴリーアーカイブ

MySQLレプリケーション環境によるバックアップ体制の構築

我が家で稼働中の自宅サーバーは3年程前に購入したネットブックです。
最近は落雷による停電やら何やらでハードディスクの寿命が怪しいと感じている日々です。
そこで、「もしも」のためにMySQLのレプリケーションを利用してバックアップを取るようにしてみました。
ついでに、ドメインとかVPSとか取得したのでこのブログも引越ししています。

※内容に間違いがあり「適当な事言ってるなこいつ」などと感じられた場合、コメントにてお知らせいただけますと幸いです。。。
続きを読む

[覚書][メモ]Amazon EC2初期状態からインストールしたパッケージ

忘れっぽいのでメモ。
頭に中点がないパッケージは依存関係で自動的に選択されたもの。
メモなので時折追記してます。

・httpd
・httpd-devel
・postfix
・dovecot
apr
apr-devel
apr-util
apr-util-devel
apr-util-ldap
cyrus-sasl-devel
db4-cxx
db4-devel
expat-devel
generic-logos
httpd-tools
mysql55-libs
openldap-devel
2012/07/15追加
・git-daemon
git
perl-Git
perl-Error
xinetd
2012/07/31追加
・mysql-server
mysql55
mysql55-common
mysql55-server
perl-DBD-MySQL
perl-DBI
みんな大好きmunin2.0タソ
・perl-CPAN
・perl-FCGI
・mod_fcgid
perl-ExtUtils-MakeMaker
perl-ExtUtils-ParseXS
perl-Test-Harness
perl-devel
・perl-YAML
・make
・perl-Cache-Cache (from EPEL)
perl-IPC-ShareLite
(CPANでperlモジュールをちょろちょろ)

[CentOS][Linux] CentOS6.2をPXEサーバー化してmemtest86+を起動

近々自宅で主に使っているデスクトップPCのメモリを増設しようと思い、メモリチェック用に自宅サーバーをPXEサーバーとして使えるようにしてみました。
ついでにDHCPサーバーにもなりました。

今回使用した環境は以下のとおりです。

  • OS: CentOS6.2
  • LAN: 192.168.0.0/24

続きを読む

[Linux]ログを毎日別ファイルに変換して保存するシェルスクリプト改

[Linux]ログを毎日別ファイルに変換して保存するシェルスクリプトだとApacheアクセスログの置換がうまくいっていなかったので修正。

#!/bin/bash
PATH=/bin
 
LOGROOT=/var/log
#DUMPROOT=/root/log
APACHE=$LOGROOT/httpd/
DUMPROOT=$APACHE
TEMP=/tmp
 
TODAY=`date +%F`
 
# Apache log
cat $APACHE/access_log | sed /^192.168.0/d | sed /^127.0.0.1/d > $TMP/access_log
cp $TMP/access_log $DUMPROOT/access_log_$TODAY
cat /dev/null > $APACHE/access_log
 
cp $APACHE/error_log $DUMPROOT/error_log_$TODAY
cat /dev/null > $APACHE/error_log

残りの部分は置換とか入れてないので割愛。
使用は自己責任で。ご指摘があればコメントかツイッターへ。

[Linux]ログを毎日別ファイルに変換して保存するシェルスクリプト

apacheのアクセスログなんかは放っておくと大量のレコードが登録されている。
さすがにそんなログは見たくないので1日分のログを抽出できるようにしてみた。
ついでにいろんなログファイルを処理してみた。
#logrotate?何それおいしいの?(爆

コードはこれ:

#!/bin/bash
PATH=/bin
 
LOGROOT=/var/log
#DUMPROOT=/root/log
APACHE=$LOGROOT/httpd/
DUMPROOT=$APACHE
TEMP=/tmp
 
TODAY=`date +%F`
 
# Apache log
cat $APACHE/access_log | sed s/^192.168.0.*$n//g | sed s/^127.0.0.1.*$n//g > $TMP/access_log
cp $TMP/access_log $DUMPROOT/access_log_$TODAY
cat /dev/null > $APACHE/access_log
 
cp $APACHE/error_log $DUMPROOT/error_log_$TODAY
cat /dev/null > $APACHE/error_log
 
# others
DUMPROOT=$LOGROOT/dump
mkdir $DUMPROOT 2>/dev/null
LIST="messages cron boot.log mysqld.log secure yum.log"
for f in $LIST
do
cp $LOGROOT/$f $DUMPROOT/${f}_${TODAY}
cat /dev/null > $LOGROOT/$f
done
 
# cups
CUPS=$LOGROOT/cups
DUMPROOT=$CUPS
LIST="access_log error_log page_log"
 
for f in $LIST
do
cp $CUPS/$f $DUMPROOT/${f}_${TODAY}
cat /dev/null > $CUPS/$f
done

ログファイルを「ファイル名_yyyy-mm-dd」にコピーして、元のファイルを空にするだけ。

パイプでsedに渡しているのはローカルからのアクセスログを排除する為。
必要に応じてログから除外するIPアドレスを指定してやればおk。

※実際に使用する前に必ず動作確認を行ってください。使ったことでログ消失があっても責任は負えませぬ。