常用脚本:在应用安装时自动修改文件句柄数
??? 当系统部署时常常需要修改目标系统的文件句柄数,如果安装的机器比较多容易忘记,这时候在应用的安装脚本中自动修改是个更好的选择,这里写了个脚本备用免得以后再去想正则表达式。在CentOS5.4下测试通过。
?
#cat install.sh
?
#/bin/bashif [ `whoami` = root ]then echo "install..." echo "set limit nofile..." LIMIT_FILE=/etc/security/limits.conf if grep "^\* *soft *nofile *[0-9]*" $LIMIT_FILE > /dev/null then sed 's/^\* *soft *nofile *[0-9]*/\* soft nofile 10240/' $LIMIT_FILE > limits.conf.temp mv limits.conf.temp $LIMIT_FILE else echo '* soft nofile 10240' >> $LIMIT_FILE fi if grep "^\* *hard *nofile *[0-9]*" $LIMIT_FILE > /dev/null then sed 's/^\* *hard *nofile *[0-9]*/\* hard nofile 32768/' $LIMIT_FILE > limits.conf.temp mv limits.conf.temp $LIMIT_FILE else echo '* hard nofile 32768' >> $LIMIT_FILE fi echo "chown run dir..." chown crust.crust /home/crust/run chmod a+x start stop showapps cp autostart.in /etc/rc.d/init.d/crust chmod a+x /etc/rc.d/init.d/crust echo "add crust autostart script" /sbin/chkconfig --add crust echo "add crust as system service" chmod u+x ./so/config_so_ld.sh ./so/config_so_ld.shelse echo "ERROR: please use root user run the script !!!!!!!"fi
?
脚本中首先搜索 /etc/security/limits.conf 中是否包含句柄数配置,没有的话直接在后面添加,已有配置则用sed进行替换。脚本后面还干了两件事顺带提一下:将应用配置成服务、注册动态库。
?
#cat autostart.in
#!/bin/bash# Init file for crust daemon# chkconfig: 35 99 01 # description: crust # processname: erl#export HOME=/home/crust/runstart(){ cd $HOME echo "[START] " `date` >> start.log touch /var/lock/subsys/crust >/dev/null 2>&1 su curst -c ./start >/dev/null 2>&1}stop(){ cd $HOME echo "[STOP] " `date` >> start.log rm -f /var/lock/subsys/crust >/dev/null 2>&1 su crust -c ./stop >/dev/null 2>&1}case "$1" instart) start;;stop) stop;;esac
?
?
?
#cat config_so_ld.sh
?
#!/bin/bashif [ `whoami` = root ]then echo /home/crust/run/so > /etc/ld.so.conf.d/crust.conf echo "add config file to /etc/ld.so.conf.d" /sbin/ldconfig echo "reconfig ld"else echo "please use root user run the script"fi
?