2011年3月31日木曜日

シェルスクリプトサンプル:ファイルローテート


#!/bin/sh
# ファイルサイズを判定してローテートするサンプル

# << SCRIPT SUB SECTION >>

##### ファイルサイズを判定してローテート
# $1:対象ファイル
# $2:ローテート条件
rotate() {

file_size=`ls -lk --time-style='+%Y%m%d' $1 | awk '{print $5}'`
file_time=`ls -lk --time-style='+%Y%m%d' $1 | awk '{print $6}'`

# ファイルサイズがローテート条件を超えたら
if [ ${file_size} -gt $2 ]; then
tar -zcf $1.${file_time}.tar.gz $1
# 0バイト化
:> $1
fi
}


# << SCRIPT MAIN SECTION >>

TRAGET_DIR=/home/operation # ローテート対象ディレクトリ
TRAGET_FILE=rsync.log # ローテート対象ファイル
THRESHOLD=20 # KBで指定

BASE=`pwd`
cd ${TRAGET_DIR}

rotate ${TRAGET_FILE} ${THRESHOLD}

ls -l ${TRAGET_FILE}*
cd ${BASE}

exit 0

2011年3月10日木曜日

ApacheのBasic認証設定

今さらですがApacheのBasic認証設定のメモ。

OS: CentOS 5.7


■.htpasswdの作成
[root@f1 ~]# /usr/bin/htpasswd -c /etc/httpd/.htpasswd secret
New password: ←yak*****
Re-type new password: ←yak*****
Adding password for user secret
[root@f1 ~]#
※OSユーザにsecretが登録されている必要はない。

■httpd.confの修正
[root@f1 ~]# vi /etc/httpd/conf/httpd.conf
(中略)
ServerName www.dummy84.com
 DocumentRoot /files3/www

 AllowOverride AuthConfig ←Noneから変更(.htaccessが無ければ認証はかからない)
 Options ExecCGI FollowSymLinks
 Order allow,deny
 Allow from all
 Dav On

■Apache再起動
[root@f1 ~]# /usr/sbin/apachectl stop
[root@f1 ~]# /usr/sbin/apachectl -f /etc/httpd/conf/httpd_vhost.conf

■.htaccessの配置
[root@f1 ~]# vi /files3/www/.htaccess
[root@f1 ~]# cat /files3/www/.htaccess
AuthType Basic
AuthUserFile /etc/httpd/.htpasswd
AuthGroupFile /dev/null
AuthName "Please Enter Your Name and Password"
require valid-user
[root@f1 ~]# chmod 444 /files3/www/.htaccess 

こちらの情報が何かのお役にたてれば幸いです。m(_ _)m