七、附上生产环境批量apache日志轮询部署脚本
管理机利用ssh-key免密钥登录,使用普通管理员帐号adms(需sudo授权)批量部署日志轮询脚本。
管理机m-logrotate.sh,实现批量部署
#!/bin/sh
cat <<EOF
+----------------------------------------------------------+
| ===log reserved 99 days === +
+-------------------by wyan 2012.9.14--------------+
EOF
echo "start remote host to exec logrotate:"
# iplist.txt file is server list
for host in `cat /tmp/iplist.txt`
do
ssh -t adms@$host "sudo wget http://10.0.0.11/xx/wy-logrotate.sh;sudo sh wy-logrotate.sh;rm -f wy-logrotate.sh"
if [ $? -eq 0 ];then
echo "$host log reserve is ok"
else
echo "$host log reserve is false"
fi
done
yum源路径上脚本wy-logrotate.sh,实现日志轮询
#!/bin/sh
[ ! -f /etc/logrotate.d/httpd ] && echo logrotate was not installed && yum -y install logrotate
PATH=/etc/logrotate.d/httpd
/bin/sed -i 's/^/#/g' $PATH
/bin/cat >>$PATH <<EOF
/var/log/httpd/*access_log {
rotate 99
daily
compress
delaycompress
nomail
missingok
notifempty
sharedscripts
postrotate
/sbin/service httpd reload > /dev/null 2>/dev/null || true
endscript
}
/var/log/httpd/*error_log {
rotate 2
daily
compress
delaycompress
nomail
missingok
notifempty
sharedscripts
postrotate
/sbin/service httpd reload > /dev/null 2>/dev/null || true
endscript
}
EOF
web服务器列表文件:
$ cat /tmp/iplist.txt
172.x.50.31
172.x.50.32
.......
172..58.32
……