メモ帳代わりの雑記です。
上記の広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書く事で広告が消せます。
執筆中

http://www.sphinxsearch.com/wiki/doku.php?id=sphinx_sphinxse_on_rhel
http://sphinxsearch.com/docs/manual-1.10.html
・コミットごとのバックアップ

svn-backup-dumps.pyを利用する
svnadmin dumpをラッピングしたスクリプトで、設定ファイルやフックスクリプトはバックアップされない。このスクリプトをcommitごとに実行する。

バックアップ用ディレクトリ作成
 mkdir –p /data/svnbackup/incbackup


スクリプトファイルコピー
 cp /home/src/subversion-1.5.0/tools/server-side/svn-backup-dumps.py /usr/bin


post-commitファイル作成
 cd /home/svn/repos/hoge/hooks
vim post-commit
#!/bin/sh

REPOS="$1"
REV="$2"
SVNBACKUPDUMPS=/usr/bin/svn-backup-dumps.py
PATH=$PATH:/usr/bin
PYTHON=/usr/bin/python

# バックアップ先
BACKUPDIR=/home/svnbackup/incbackup

$PYTHON $SVNBACKUPDUMPS -r $REV $REPOS $BACKUPDIR



・日次バックアップ
バックアップ用ディレクトリ作成
 mkdir /data/svnbackup/day


cronでスクリプトを日次実行

cd /etc/cron_daily
vim svn_backup_daily.sh
#! /bin/sh
REPOS=/home/svn/repos/hoge
BACKUPDIR=/data/backup/day
SVNBACKUP=/usr/bin/svn-backup-dumps.py

${SVNBACKUP} –b –c 10 ${REPOS} ${BACKUPDIR}

chmod 755 svn_backup_daily.sh



・週次バックアップ
スクリプトファイル編集
 cp /home/src/subversion-1.5.0/tools/backup/hot-backup.py /usr/bin
vim /usr/bin/hot-backup.py

#56行目付近を編集する(64→4)これはバックアップを残す数
num_backups = int(os.environ.get("SVN_HOTBACKUP_BACKUPS_NUMBER", 4))


cronで以下のスクリプトを週次実行

cd /etc/cron.weekly
vim svn_backup.sh

#! /bin/sh
REPOS=/home/svn/repos/hoge
BACKUPDIR=/data/svnbackup
HOTBACKUP=/usr/bin/hot-backup.py

${HOTBACKUP} ${REPOS} ${BACKUPDIR}

chmod 755 svn_backup.sh


subversionとはソースコードを管理する、バージョン管理システム。

必要なパッケージをインストールする

 yum -y install wget expat-devel zlib-devel libxml2-devel gettext gettext-devel


apacheを取得する
 cd /usr/local/src
wget http://ftp.riken.jp/net/apache/httpd/httpd-2.2.16.tar.gz
tar zvxf httpd-2.2.16.tar.gz


aprインストール
 cd /usr/local/src/httpd-2.2.16/srclib/apr
./configure --prefix=/usr/local/apr --enable-threads
make -j2 && make install
cd ..


apr-utilインストール
 cd apr-util
./configure --prefix=/usr/local/apr --with-apr=/usr/local/apr
make -j2 && make install
cd ../../


apacheのインストール
./configure \
--prefix=/usr/local/apache2 \
--enable-mods-shared=most \
--enable-dav \
--enable-dav-fs \
--enable-dav-lock \
--enable-cgi \
--enable-cgid \
--enable-cache\
--enable-mem-cache\
--enable-proxy \
--enable-proxy-blancer\
--enable-rewrite \
--enable-so \
--with-apr=/usr/local/apr \
--with-apr-util=/usr/local/apr

make
make install
cd modules/proxy
/usr/local/apache2/bin/apxs -i -c mod_proxy.c proxy_util.c
/usr/local/apache2/bin/apxs -i -c mod_proxy_http.c proxy_util.c
cd


apacheユーザとグループの追加
 groupadd apache
useradd -g apache -s /sbin/nologin apache


conf編集
- apacheユーザとグループの変更
 Vim /usr/local/apache2/conf/httpd.conf
User daemon → User apache
Group daemon → User apache

- モジュールの読み込み設定追記
LoadModule dav_svn_module modules/mod_dav_svn.so 
LoadModule authz_svn_module modules/mod_authz_svn.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so


起動スクリプト設定
 cp /usr/local/src/httpd-2.2.16/build/rpm/httpd.init /etc/rc.d/init.d/httpd
chmod 755 /etc/init.d/httpd
chkconfig --add httpd
chkconfig httpd on


neonインストール
 cd /usr/local/src/
wget http://www.webdav.org/neon/neon-0.29.3.tar.gz
tar zvxf neon-0.29.3.tar.gz
cd neon-0.29.3
./configure --prefix=/usr/local/neon --with-libxml2 --with-expat
make -j2 && make install
echo "/usr/local/neon/lib" >> /etc/ld.so.conf.d/neon.conf
ldconfig
cd ..


swigインストール
 wget http://downloads.sourceforge.net/project/swig/swig/swig-2.0.0/swig-2.0.0.tar.gz
tar xzvf swig-2.0.0.tar.gz
cd swig-2.0.0
./configure --prefix=/usr/local/swig\
--with-python=/usr/local/python-2.5.2/bin/python
make -j2 && make install
echo "/usr/local/swig/lib" >> /etc/ld.so.conf.d/swig.conf
ldconfig
cd ..


subversionインストール
※Ver1.6系の場合はSqLite3.4以上のソースからsqlite3.cを所定のディレクトリにコピーする

 wget http://subversion.tigris.org/downloads/subversion-1.5.0.tar.gz
tar xzvf subversion-1.5.0.tar.gz
cd subversion-1.5.0
./configure --prefix=/usr/local/svn --with-apxs=/usr/local/apache2/bin/apxs --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr --with-neon=/usr/local/neon --with-swig=/usr/local/swig --without-jdk
make -j2 && make install
cd

echo "PATH=$PATH:/usr/local/svn/bin" >> .bashrc
source .bashrc

/etc/init.d/httpd restart


リポジトリの作成
 mkdir -p /home/svn/repos
mkdir /home/svn/repos/hoge
svnadmin create /home/svn/repos/hoge
chown -R apache:apache /home/svn/repos/hoge
chmod -R g+s /home/svn/repos/hoge
echo 'Include conf/extra/httpd-subversion.conf' >>\
/usr/local/apache2/conf/httpd.conf"
vim /usr/local/apache2/conf/extra/httpd-subversion.conf
<Location /svn>
DAV svn
SVNParentPath /home/svn/repos
</Location>