Recent Posts

Archives

Blog Ranking

Favorite

ExchangeRate

Update: 2012-02-07 21:00
by ロイター
 

Server

« Previous Entries
 

logrotateでApacheのログローテート

金曜日, 5 月 29th, 2009

Apacheのログファイルのローテート。
今までは自分でスクリプトを作って、cronに登録してやってました。

こんな感じ。
 —–
 YMD=`env TZ=JST+15 date ‘+%Y%m%d’`
 cp /usr/local/apache2/logs/access_log /usr/local/apache2/logs/access_log_${YMD}.log
 cp /usr/local/apache2/logs/error_log /usr/local/apache2/logs/error_log_${YMD}.log
 cp /dev/null /usr/local/apache2/logs/access_log
 cp /dev/null /usr/local/apache2/logs/error_log
 /usr/local/apache2/bin/apachectl graceful
 —–

あんまりスマートじゃないような気がする。
ということで、logrotateを使うことにしました。

ローテートしたいログの設定ファイルを/etc/logrotate.d/内に作成。
 —–
 /usr/local/apache2/logs/access_log {
  daily
  rotate 30
  dateext
  create 0644 root root

  postrotate
   /usr/local/apache2/bin/apachectl graceful > /dev/null 2>&1
  endscript
 }

 /usr/local/apache2/logs/error_log {
  daily
  rotate 30
  dateext
  create 0644 root root

  postrotate
   /usr/local/apache2/bin/apachectl graceful > /dev/null 2>&1
  endscript
 }
 —–

『daily』は毎日。ここは他に『weekly』『monthly』などもある。
『rotate 30』は30世代分を残す。
『dateext』はローテートされたファイル名に日付をつける。
『create 0644 root root』は新規ログファイルを指定のパーミッション・ユーザ・グループで作成する。
『postrotate~endscript』はローテート後に実行するコマンド。ここではApacheをgracefulします。

最後にlogrotateを手動で実行。

 # /usr/sbin/logrotate /etc/logrotate.d/hogehoge

初回は/var/lib/logrotate.statusにログファイル名と日付が保存されるだけで、ローテートはされない。
 —–
 ”/usr/local/apache2/logs/access_log” 2009-5-29
 ”/usr/local/apache2/logs/error_log” 2009-5-29
 —–

日付の部分を1日前(今回は『daily』なので1日。周期によってここは変える。)に書き換える。

これで完了。
デフォルトだと、AM04:02にローテートされます。

↓役に立ったと思ったら・・・

 

 

Xenでブリッジ追加

水曜日, 4 月 22nd, 2009

NICが2つあるときに、eth1(2つ目?)をDomUで使うときは、Dom0側でブリッジしてやらないといけない。
ということで、eth1のブリッジ「xenbr1」を作成します。

Xen起動時に実行されるスクリプト/etc/xen/scripts/network-bridgeをリネームします。
 # cd /etc/xen/scripts
 # cp ./network-bridge ./network-bridge.xen

新たに同名のファイルを作成します。
 # vi ./network-bridge
 ———-
 #!/bin/sh

 set -e

 OP=$1
 shift

 script=/etc/xen/scripts/network-bridge.xen

 case ${OP} in
  start)
   $script start vifnum=0 bridge=xenbr0 netdev=eth0
   $script start vifnum=1 bridge=xenbr1 netdev=eth1
   ;;
  stop)
   $script stop vifnum=0 bridge=xenbr0 netdev=eth0
   $script stop vifnum=1 bridge=xenbr1 netdev=eth1
   ;;
  status)
   $script status vifnum=0 bridge=xenbr0 netdev=eth0
   $script status vifnum=1 bridge=xenbr1 netdev=eth1
   ;;
  *)
  echo ‘Unknown command: ‘ ${OP}
  echo ‘Valid commands are: start, stop, status’
  exit 1
 esac
 ———-

あとはXenを再起動。
 # /etc/init.d/xend restart

ifconfigで見てみると、「xenbr1」が出来ています。

ココが参考になります。
Xen環境で仮想ネットワークを構築

↓役に立ったと思ったら・・・

 

 

NTPサーバ構築

水曜日, 4 月 15th, 2009

まずインストール。
 # yum install ntp

次に設定。
ローカルエリアからの同期を許可と、同期先NTPサーバの指定。
 # cp /etc/ntp.conf /etc/ntp.conf.org
 # vi /etc/ntp.conf
 —–
 restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

 server 0.centos.pool.ntp.org
 server 1.centos.pool.ntp.org
 server 2.centos.pool.ntp.org
 ↓
 server -4 ntp.nict.jp
 server -4 ntp.nict.jp
 server -4 ntp.nict.jp
 —–

一度手動で同期をとっておく。
ntpdate ntp.nict.jp

ntpのサービスを起動。当然自動起動。

/etc/init.d/ntpd start
chkconfig ntpd on

ntpq -pで確認
NTPサーバの先頭に「*」か「+」が表示されていれば同期完了

remote refid st t when poll reach [...]

 

Subversion+WebDAV+Tracでバージョン管理(プロジェクト管理)

土曜日, 3 月 28th, 2009

ボクはいくつかのサイトを運営しています。
運営上、何かと不便なことが出てきたので、バージョン管理を入れることにしました。

有名どころのsubversionを使います。
外出時でも使えるようにしたいのでwebdavと組み合わせます。

「trac」というプロジェクト管理ツールがあるということなので、ついでにそれもいれます。

まずはsubversionとwebdavのインストール。

 # yum install mod_dav_svn

これだけで必要なものは全てインストールされます。

次はtracのインストール。
本家サイトにはソースしか置いてませんが、yumでインストールする方法がありました。

 # vi /etc/yum.repos.d/deg.repo
 —–
 [dag]
 name=Dag RPM Repository for Redhat EL4
 baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
 gpgcheck=1
 enabled=0
 gpgkey=http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt
 —–

 # yum install mod_python
 # yum install trac –enablerepo=dag

tracはpythonで実装されているので一緒にmod_pythonもインストールします。

続いて、tracの日本語化。
これはyumではできません。

 # wget http://www.i-act.co.jp/project/products/downloads/Trac-0.11.2.1.ja1.zip
 # unzip ./Trac-0.11.2.1.ja1.zip
 # cd ./Trac-0.11.2.1.ja1
 # python setup.py install

インストール完了です。

それではSubversionのリポジトリを作成します。
プロジェクト名を「hogehoge」、ディレクトリを「/var/proj/svn」とします。
Apacheからファイルの読み書きができるようにパーミッションを変更、Basic認証でアクセス制限もかけます。

 # mkdir /var/proj
 # mkdir /var/proj/svn
 # svnadmin create /var/proj/svn/hogehoge
 # svn mkdir file:///var/proj/svn/hogehoge/trunk file:///var/proj/svn/hogehoge/tags file:///var/proj/svn/hogehoge/branches -m ‘init repository layout (trunk,tags,branches)’
 # chown -R apache.apache /var/proj/svn/hogehoge
 # htpasswd -c /var/proj/.htpasswd kimura

Apacheの設定をします。

 # vi /etc/httpd/conf.d/subversion.conf
 ———-
 <Location /svn>
  DAV [...]

 

XenのDomainUで時刻同期

金曜日, 3 月 6th, 2009

Xenのバーチャルサーバ(DomainU)の時計がずれていたので、ntpdateで時刻同期をとりました。

 # ntpdate www.xxx.yyy.zzz
  5 Mar 23:22:45 ntpdate[7860]: step time server www.xxx.yyy.zzz offset -209.707158 sec

よし。

ん?

あれ?

同期できてない。

・・・なぜ?

いろいろ調べてみたところ、どうやらXenの仕様で、Domain0からしか時刻を更新できないらしい。
ただ、Domain0で時刻を合わせていれば、DomainUも正確な時刻を得ることができるとのこと。

なるほど。

で、一応DomainU側での制御もできるらしい。
カーネルパラメータ「xen.independent_wallclock」の値を『1』にすればいい。

 # sysctl xen.independent_wallclock=1

もしくは

 # echo 1 > /proc/sys/xen/independent_wallclock

うん、今度は同期できました。

↓役に立ったと思ったら・・・

 

« Previous Entries