(一下脚本非本人所写,从同事那里得来,代他开源了^_^,请勿用作其他商业用途。仅供技术人员临时查阅之用)
#!/bin/bash
TEXT="ulimit -HSn"
FILE="/etc/rc.d/ssh2"
# the default ulimit num is 10240
if [ "Z$1" = "Z" ] ; then
ULIMITNUM=10240
else
ULIMITNUM=$1
fi
# change /etc/profile
cp /etc/profile /etc/profile.bak
sed -i "/$TEXT/d" /etc/profile
echo "ulimit -HSn $ULIMITNUM" >> /etc/profile
# change /etc/security/limit.conf
cp /etc/security/limits.conf /etc/security/limits.conf.bak
sed -i "/^\* soft nofile/d" /etc/security/limits.conf
sed -i "/^\* hard nofile/d" /etc/security/limits.conf
echo "* hard nofile $ULIMITNUM" >> /etc/security/limits.conf
echo "* soft nofile $ULIMITNUM" >> /etc/security/limits.conf
# check the configure file of ssh2 is exist
if [ ! -e "$FILE" ];then
exit 1
fi
# insert the new ulimit into configure file
sed -i "/$TEXT/d" $FILE
textnum=`cat $FILE |grep -n '/usr/local/sbin/sshd -f /etc/ssh2/sshd2_config.l' |awk -F':' '{print $1}'`
sed -i "${textnum}i ulimit -HSn $ULIMITNUM" $FILE
if [ $? -ne 0 ];then
exit 2
fi
# rcssh2 restart
rcssh2 restart