« subversion | メイン | echo の改行抑制 »

2005年09月27日

everyday サーバいじり記録

・NTPのコマンドがうごかんなー  コマンド自体はあるが
[root@everyday cron.daily]# /usr/sbin/ntpdate clock.nc.fukuoka-u.ac.jp;hwclock -w 2>&1 > /dev/null
/usr/sbin/ntpdate: error while loading shared libraries: libcap.so.1: cannot open shared object file: No such file or directory

つーことで上書きしてやれ
apt-get install ntp

Preparing... ########################################### [100%]
1:libcap ########################################### [ 50%]
2:ntp 警告: /etc/ntp.conf created as /etc/ntp.conf.rpmnew
警告: /etc/ntp/drift created as /etc/ntp/drift.rpmnew
警告: /etc/ntp/keys created as /etc/ntp/keys.rpmnew
警告: /etc/ntp/step-tickers created as /etc/ntp/step-tickers.rpmnew
警告: /etc/rc.d/init.d/ntpd saved as /etc/rc.d/init.d/ntpd.rpmorig
警告: /etc/sysconfig/ntpd created as /etc/sysconfig/ntpd.rpmnew
########################################### [100%]

何とか動くようになりました。

・apacheのログがローテとしてない!
 /etc/logrotate.d/apache は存在している、が動いてない。
 なんで??とおもったら cronが起動されていない!
 
 余計なcrontabがないことを 
/var/spoll/cron/以下
/etc/crontab
/etc/cron.*以下見回して確認
/etc/init.d/crond start で起動


あうー なんかエラーメールがドンドコとんでくる
/etc/cron.d/以下にも残骸が! webminのモニターリング用クーロンジョブが登録されてたので消し。

/etc/cron.d/sysstat これもコメントアウト

アパッチのログはdaily にてログローテート
ログローテートするか明日確認

ちなみに/etc/logrotate.d/apache は以下のようになっている
--------------------------------------------------------------------------
/usr/local/apache/logs/*log {
daily
missingok
notifempty
sharedscripts
postrotate
/bin/kill -HUP `cat /usr/local/apache/logs/httpd.pid 2>/dev/null` 2> /dev/null || true
/home/backup/dailybackup.sh >/dev/null 2>&1
endscript
}
-------------------------------------------------------------------------------------

解説/usr/local/apache/logs/*logs という名前のファイルをローテートする
daily 毎日やる
missingok なんやったかの覚えてないわ
notifempty なんやったかの覚えてないわ
sharedscripts なんやったかの覚えてないわ

postrotate ~ endscript 間はローテートを行った後に行うスクリプトを記述
/bin/kill -HUP `cat /usr/local/apache/logs/httpd.pid 2>/dev/null` 2> /dev/null || true
これは apacheが今までつかんでいたログファイルを一旦手放して新しいログファイルに記入するためにアパッチに信号を送るためのスクリプト

/home/backup/dailybackup.sh >/dev/null 2>&1
これは自前で用意したアパッチのログをBKサーバに転送するためのスクリプト

要はログをローテートしたついでにBKサーバにログを転送するようになっている。
明日BKサーバに転送されているかな??要確認

・さて、次はコンテンツのバックアップを考えるか・・・

1、まずはバックアップサーバ側にNFSでマウント可能になるよう設定
 バックアップサーバにログイン 裏回線からプライベートIPでSSHにて侵入
 NFSの事よく知らんのだよな・・・・
 とりあえずマウント用ディレクトリつくっとくか
 cd /var/backup
mkdir everyday

 everydayサーバにてマウントさせる場所を作成
 mkdir /backup
 とりあえずマウントさせてみるか
 mount -t nfs バックアップサーバIP:/var/backup/everyday /backup
 mount: バックアップサーバIP:/var/backup/everyday failed, reason given by server: 許可がありません

 ハイ 許可が出てないらしいです。どこでやるんだっけ
 ツー事でバックアップサーバにもどり
 ちょっと調べると
 最初にNFSサーバの設定を行う。NFSの設定は、/etc/exports でうんたらかんたら
 あーこれこれだ
 中に以下を追加
 /var/backup/everyday everydayサーバプライベートIP(rw,sync,no_root_squash)
 

 これでマウントできるだろ
 再びeverydayサーバへ戻る
 mount -t nfs バックアップサーバIP:/var/backup/everyday /backup
 mount: バックアップサーバIP:/var/backup/everyday failed, reason given by server: 許可がありません
 まだ 怒られるよ!

 あーNFSを再起動してないからか
 またまたバックアップサーバにて
 /etc/init.d/nfs restart
 
 コンドこそー
 mount -t nfs バックアップサーバIP:/var/backup/everyday /backup
 
 できますた。バックアップサーバの一部マウント完了!


2、まずコンテンツのバックアップとるじょ
 メール、その他のバックアップはこの鯖はいらね
 バック取るのって /usr/local/apache/htdocs/everyday/以下でええんかな
 他の鯖は週一全体バック 日々差分だけど、こいつは量すくないし
 毎日全体バックとってやれ
 

3、データベースのバックアップ

 rootのcrontabに登録
01 3 * * * sh /usr/local/bin/backup_full2

以下 /usr/local/bin/backup_full2 の中身


-----------------------------------------------------------------------------------------

mount -t nfs バックアップサーバIP:/var/backup/everyday /backup

#本日日付
time=`date +%y%m%d`

#日付名のディレクトリ作成
mkdir /backup/${time}
chmod 777 /backup/${time}
tar czvf /backup/${time}/mycom.tar.gz /usr/local/apache/htdocs/everyday


#データベースバックアップ
su - postgres -c "/var/pgsql/bin/pg_dumpall > /backup/${time}/db_back.out
/var/pgsql/bin/vacuumdb -a --analyze


#90日前のバックは消す
rmdir_name=`date --date '90 days ago' +%y%m%d`
rm -rf /backup/${rmdir_name}


umount /backup

---------------------------------------------------------------------------------------


以上完成

mount -t nfs 10.0.0.3:/var/backup/iljsv01 /backup

投稿者 muuming : 2005年09月27日 19:02

コメント

コメントしてください




保存しますか?