Centos6优化系统服务脚本

#!/bin/bash
SysVer=`cat /etc/redhat-release | awk -F'release' '{print $2}' | awk -F'[ .]+' '{print $2}'`
if [ ! $SysVer -eq 6 ]
then
    echo "This script is only applicable to centos6.x version system"
    exit 110
fi
echo -e "33[46;34;5m[ This script only opens services that have ]33[0m"
echo "crond | irqbalance | microcode_ctl | messagebus | network | sshd | rsyslog | local"
echo ""

# read -p "请输入其他需要开放的服务:" SerV

for i in `ls /etc/rc3.d/S*`
do
    CURSRV=`echo $i|cut -c 15-`
    echo $CURSRV
    case $CURSRV in
    crond | irqbalance | microcode_ctl | messagebus | network | sshd | rsyslog | local )
        echo -e "33[46;34;5m[ Base services, Skip... ]33[0m"
    ;;
#   $SerV )
#       echo -e "33[46;34;5m[ Base services, Skip... ]33[0m"
#   ;;
    *)
        echo "change $CURSRV to off"
        chkconfig --level 2345 $CURSRV off
        service $CURSRV stop
    ;;
    esac
done

介绍/etc/rc3.d/目录

官方解析:/etc目录下通常有rc0.d-rc6.d目录,里面对应包含了从init0-init6不同运行级所要启动的命令,rc.d目录下有8个目录和3个文件,其中目录为rc0.d-rc6.d,分别代表了各个run-level的脚本,目录中文件名称均以S及K开头,后接两位数字与该服务名称,这些文件都是link文件,指向/etc/rc.d/init.d目录。在rc3.d目录中,以S开头的文件为执行该服务,以K开头的文件则是杀掉该服务的意思。数字代表启动顺序。

白话解析:在此目录下带K的表示停止(Kill)一个服务,S表示开启(Start)的意思。后面的数字它的作用是用来排序,就是决定这些脚本执行的顺序,数值小的先执行,数值大的后执行。很多时候这些执行顺序是很重要的,比如要启动Apache服务,就必须先配置网络接口,不然一个没有IP的机子来启动http服务那岂不是有BUG。同一个服务带S的和带K的链接到init.d之后是同一个脚本。S给和K还分别给init.d下面的脚本传递了start和stop的参数。原来传S时相当于执行了/etc/rc.d/init.d/xxx start这条命令,当然K就相当于/etc/rc.d/init.d/xxx stop了。

原文地址:https://www.cnblogs.com/chuyiwang/p/10137952.html