系統(tǒng)初始化腳本

#!/bin/bash

#

#********************************************************************

#encoding  -*-utf8-*-

#Author:

#Date: 2018-12-19

#URL:

#Description:   The test script

#Copyright (C): 2018 All rights reserved

#QQ Numbers:

#********************************************************************

read -p "請輸入IP地址:" IP

read -p "請輸入GATEWAY地址:" GATEWAY

read -p "請輸入主機名:" HOST_NAME

read -p "是否創(chuàng)建ywuser用戶:(Yes/No)" ADD_YWUSER

#查看系統(tǒng)版本

Get_host_version=`cat /etc/centos-release | grep -i centos | grep -o "\<[[:digit:]]\+" |head -1`

#查看內核版本

kernel_version=`uname -r`

#設置開機啟動文件的權限

chmod +x /etc/rc.d/rc.local

#zabbix-server IP地址

ZABBIX_SERVER=10.180.4.230

#修改主機名HOST_NAME

function Set_HOST_NAME(){

    if [ "$Get_host_version" == 7 ]

        then

        hostnamectl set-hostname $HOST_NAME &>/dev/null

        echo "$IP $HOST_NAME" >/etc/hosts

    elif [ "$Get_host_version" == 6 ]

        then

        hostname $HOST_NAME &>/dev/null

        chkconfig iptables off &>/dev/null

echo "$IP $HOST_NAME" >/etc/hosts

sed -ri "s@^(HOSTNAME=).*$@\1\$HOST_NAME@g" /etc/sysconfig/network

    else

        Error_system_version

        return 1

    fi

}

#是否創(chuàng)建ywuser用戶,并設置sudo權限奈虾。

function Add_ywuser(){

    case $ADD_YWUSER in

    [Yy]|[Yy][Ee][Ss])

            ADD_YWUSER=Y

            ;;

    [Nn]|[Nn][Oo])

            ADD_YWUSER=N

            ;;

    *)

            echo other

            return 1

            ;;

    esac 

    if [ "$ADD_YWUSER" == Y ]

        then

            useradd ywuser

            echo 'SDGSxlzf@123' | passwd --stdin  "ywuser"

            echo 'ywuser    ALL=(ALL)      ALL' >>/etc/sudoers

            echo 'ywuser用戶已創(chuàng)建完成'

    else

        echo '跳過創(chuàng)建ywuser用戶'

    fi

}

#修改提示符顏色信息

function set_Prompt(){

    echo 'export PS1="\[\e[1;32m\][\u@\h \w]\\$\[\e[m\]"' >>/root/.bashrc

    echo 'export PS1="\[\e[1;32m\][\u@\h \w]\\$\[\e[m\]"' >>/etc/skel/.bashrc 

    echo 'alias grep="grep --color" ' >>/root/.bashrc

    echo 'alias grep="grep --color" ' >>/etc/skel/.bashrc 

    echo -e "syntax on\nset number" >>/etc/vimrc

    echo -e "嚴正聲明愚墓,如果您以非法方式登錄本服務器浪册,您將承擔法律責任4逑蟆T苤痢!\nI declare that if you log on this server by illegal means, you will be held legally responsible!!!" >>/etc/motd

    PS1="\[\e[1;32m\][\u@\h \w]\\$\[\e[m\]"

}

#修改history提示增加時間和用戶

function set_History(){

    echo 'export HISTTIMEFORMAT="%F %T `whoami` "' >>/etc/profile

}

#備份操作的相關目錄

function Bakup_etc(){

    Now_of_time=`date +'%F_%H.%M'`

    back_path=/bak/initsys/

    mkdir -p $back_path

    tar -czf $back_path/etc.${Now_of_time}.tar.gz /etc

}

#設置默認啟動時用字符界面

function Set_multi_start(){

    #off firewall

    if [ "$Get_host_version" == 7 ]

        then

        systemctl set-default multi-user.target

    elif [ "$Get_host_version" == 6 ]

        then

        sed -i 's/id:5:initdefault:/id:3:initdefault:/g' /etc/inittab

    else

        sed -i 's/id:5:initdefault:/id:3:initdefault:/g' /etc/inittab

        return 1

    fi

}

#禁止Ctrl+Alt+Del快捷鍵重新啟動

function Close_ctrl_alt_del(){

    #off firewall

    if [ "$Get_host_version" == 7 ]

        then

        rm -f /usr/lib/systemd/system/ctrl-alt-del.target

    elif [ "$Get_host_version" == 6 ]

        then

        sed -i 's/^exec/#exec/g' /etc/init/control-alt-delete.conf

    else

        sed -i 's/^exec/#exec/g' /etc/init/control-alt-delete.conf

        return 1

    fi

}

#設置300秒無操作自動注銷ROOT

function Automatic_log-out(){

    sed -i '/HISTSIZE=/a\TMOUT=300' /etc/profile

}

#關閉防火墻和selinux

function Off_firewall_and_selinux(){

    #off firewall

    if [ "$Get_host_version" == 7 ]

        then

        systemctl stop firewalld &>/dev/null

        systemctl disable firewalld &>/dev/null

    elif [ "$Get_host_version" == 6 ]

        then

        service iptables stop &>/dev/null

        chkconfig iptables off &>/dev/null

    else

        Error_system_version

        return 1

    fi

    #off selinux

    sed -ri 's/^(SELINUX=).*$/\1disabled/g' /etc/selinux/config

    setenforce 0

}

#配置時區(qū)和時間

function Set_timezone_and_time(){

    /usr/bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

    /usr/sbin/ntpdate 10.180.4.204 #設置ntp服務器同步志膀,如果需要取消注釋

    hwclock -w #同步系統(tǒng)時間到硬件時間

    if [ "$Get_host_version" == '6' ]

        then

        cat > /etc/sysconfig/clock << EOF

ZONE="Asia/Shanghai"

UTC=false

ARC=false

EOF

    elif [ "$Get_host_version" == '7' ]

        then

        timedatectl set-local-rtc yes

    else

        Error_system_version

    fi   

}

#測試外網(wǎng)是否連通

function Test_network(){

    ping -c1 www.baidu.com &>/dev/null

    if [ $? -eq 0 ]

        then

        return 0

    else

        return 1

    fi

}

#設置系統(tǒng)最大句柄數(shù)

function Set_handler_Num(){

    limit_count=`cat /etc/security/limits.conf | grep "^\*[[:blank:]]\+\(soft\|hard\)[[:blank:]]\+\(nofile\|nproc\)[[:blank:]]\+" | wc -l`

    if [ "$limit_count" -eq 0 ]

        then

        cat >> /etc/security/limits.conf << EOF

*  soft  nofile  102400

*  hard  nofile  102400

*  soft  nproc    40960

*  hard  nproc    40960

EOF

        ulimit -n 102400 #設置文件打開數(shù),并馬上生效溉浙,

    else

        echo "已經(jīng)添加過limit限制!"

    fi

}

#禁用ssh的DNS功能

function Disabled_sshd_dns(){

    [ `grep "^#UseDNS \(no\|yes\)" /etc/ssh/sshd_config | wc -l` -eq 0 ] && { echo '已禁用該配置馆蠕,Do nothing!' ; return 1; }

    sed -ri 's@#UseDNS (no|yes)@UseDNS no@g' /etc/ssh/sshd_config

    if [ "$Get_host_version" == '6' ]

        then

        service sshd restart

    elif [ "$Get_host_version" == '7' ]

        then

        systemctl restart sshd

    else

        Error_system_version

    fi

}

#配置網(wǎng)卡名稱為eth*

function Modify_network_card_name(){

    if [ "$Get_host_version" == '6' ] #修改Centos6 的網(wǎng)卡

        then

        Count_cart=`cat /etc/udev/rules.d/70-persistent-net.rules | grep 'SUBSYSTEM=="net", ACTION=="add"' | wc -l`

        [ "$Count_cart" -eq 0 ] && { echo "沒有網(wǎng)卡信息播赁,請檢查網(wǎng)卡驅動行拢!" ; return 1; }

        count=1

        All_mac=`cat 70-persistent-net.rules | grep 'SUBSYSTEM=="net", ACTION=="add"' |grep -o "\([0-9a-fA-F]\{2\}:\)\{5\}[0-9a-fA-F]\{2\}"`

        for i in `$ALL_mac`

            do

            sed -ri 's@('$i'.*NAME=").*[[:digit:]]+"$@\1eth'$count'$"@' /etc/udev/rules.d/70-persistent-net.rules

            let count+=1

            done

        echo '修改網(wǎng)卡名成功,請查看配置!'

        echo "`cat /etc/udev/rules.d/70-persistent-net.rules | grep 'SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="'`"

    elif [ "$Get_host_version" == '7' ] #修改Centos7 的網(wǎng)卡

        then

        boot_grub=/boot/grub2/grub.cfg

        grub_default_cfg=/etc/default/grub

        Name_count=`cat  $boot_grub 2>/dev/null | grep "quiet[[:blank:]]\+net.ifnames" | wc -l`

        cp $grub_default_cfg ${grub_default_cfg}.`date +'%F_%H.%M'`

        [ $? -ne 0 ] && { echo "沒有 $grub_default_cfg 這個文件" ; return 1; }

        if [ "$Name_count" -eq 0 ]

            then

            sed -ri 's/(GRUB_CMDLINE_LINUX=.*quiet)/\1 net.ifnames=0/g' $grub_default_cfg

            grub2-mkconfig -o $boot_grub

            if [ $? -eq 0 ]

                then

                echo '生成新的配置文件,生效需重啟沼瘫!'

            else

                echo "grub文件生成錯誤咙俩! $boot_grub 可能會產(chǎn)生錯誤阿趁!請檢查"

            fi

        else

            echo '已經(jīng)修改過grub參數(shù),無需再次修改皂股!Do nothing呜呐!'

        fi

    else

        Error_system_version

    fi

}

function Set_ip_gateway() {

NETWORK=/etc/sysconfig/network-scripts

mv $NETWORK/ifcfg-ens160 $NETWORK/ifcfg-eth0

cat > $NETWORK/ifcfg-eth0 << EOF

TYPE=Ethernet

PROXY_METHOD=none

BROWSER_ONLY=no

BOOTPROTO=static

DEFROUTE=yes

IPV4_FAILURE_FATAL=no

NAME=eth0

DEVICE=eth0

ONBOOT=yes

IPADDR=$IP

NETMASK=255.255.255.0

GATEWAY=$GATEWAY

PREFIX=24

IPV6INIT=no

EOF

}

function Set_zabbix_agent() {

rpm -ivh /usr/local/src/zabbix-agent-3.2.3-1.el6.x86_64.rpm

cp /etc/zabbix/zabbix_agentd.conf /etc/zabbix/zabbix_agentd.conf.bak

    mkdir -pv /var/run/zabbix/

    chown zabbix:zabbix /var/run/zabbix/

sed -i "s/^\(ServerActive=\).*$/\1$ZABBIX_SERVER/g" /etc/zabbix/zabbix_agentd.conf

sed -i "s/^\(Server=\).*$/\1$ZABBIX_SERVER/g" /etc/zabbix/zabbix_agentd.conf

sed -i "s/^\(Hostname=\).*$/\1$HOST_NAME/g" /etc/zabbix/zabbix_agentd.conf

echo 'HostMetadataItem=system.uname' >>/etc/zabbix/zabbix_agentd.conf

echo 'HostMetadata=sdgsautoreg'>>/etc/zabbix/zabbix_agentd.conf

}

#添加自啟動服務

function Set_AUTO_services(){

    if [ "$Get_host_version" == 7 ]

        then

systemctl enable zabbix-agent &>/dev/null

    /sbin/chkconfig zabbix-agent on &>/dev/null

    reboot

    elif [ "$Get_host_version" == 6 ]

        then

        chkconfig zabbix-agent on &>/dev/null

    chkconfig --add zabbix-agent &>/dev/null

        reboot

    else

        Error_system_version

        return 1

    fi

}

#這里開始調用執(zhí)行

Bakup_etc  #備份etc

Off_firewall_and_selinux  #關閉selinux

Set_timezone_and_time  #設置時區(qū)和時間

Set_handler_Num  # 設置打開文件數(shù)

Add_ywuser  #是否創(chuàng)建ywuser用戶蘑辑,并設置sudo權限

set_Prompt  #修改提示符信息

set_History #修改history提示增加時間和用戶

Set_multi_start #設置默認啟動時用字符界面

Close_ctrl_alt_del  #禁止Ctrl+Alt+Del快捷鍵重新啟動

Automatic_log-out  #設置300秒無操作自動注銷ROOT

Disabled_sshd_dns #禁用ssh的dns功能

Modify_network_card_name  #統(tǒng)一網(wǎng)卡名稱為eth

Set_ip_gateway  #設置IP地址網(wǎng)關

Set_HOST_NAME   #設置hostname主機名

Set_zabbix_agent #設置zabbix-agent

Set_AUTO_services #添加自啟動服務
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市副砍,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌顿锰,老刑警劉巖硼控,帶你破解...
    沈念sama閱讀 211,639評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件匙隔,死亡現(xiàn)場離奇詭異,居然都是意外死亡熏版,警方通過查閱死者的電腦和手機撼短,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評論 3 385
  • 文/潘曉璐 我一進店門曲横,熙熙樓的掌柜王于貴愁眉苦臉地迎上來禾嫉,“玉大人熙参,你說我怎么就攤上這事艳吠。” “怎么了尊惰?”我有些...
    開封第一講書人閱讀 157,221評論 0 348
  • 文/不壞的土叔 我叫張陵讲竿,是天一觀的道長扳剿。 經(jīng)常有香客問我庆聘,道長,這世上最難降的妖魔是什么穴店? 我笑而不...
    開封第一講書人閱讀 56,474評論 1 283
  • 正文 為了忘掉前任膀捷,我火速辦了婚禮迈嘹,結果婚禮上,老公的妹妹穿的比我還像新娘全庸。我一直安慰自己秀仲,他們只是感情好,可當我...
    茶點故事閱讀 65,570評論 6 386
  • 文/花漫 我一把揭開白布壶笼。 她就那樣靜靜地躺著神僵,像睡著了一般。 火紅的嫁衣襯著肌膚如雪目派。 梳的紋絲不亂的頭發(fā)上智末,一...
    開封第一講書人閱讀 49,816評論 1 290
  • 那天它呀,我揣著相機與錄音下隧,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的启涯。 我是一名探鬼主播,決...
    沈念sama閱讀 38,957評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼筷厘,長吁一口氣:“原來是場噩夢啊……” “哼玖雁!你這毒婦竟也來了浓镜?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,718評論 0 266
  • 序言:老撾萬榮一對情侶失蹤咨跌,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后刊殉,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體陋葡,經(jīng)...
    沈念sama閱讀 44,176評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡惜索,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,511評論 2 327
  • 正文 我和宋清朗相戀三年蔫磨,在試婚紗的時候發(fā)現(xiàn)自己被綠了窒朋。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,646評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡兵怯,死狀恐怖,靈堂內的尸體忽然破棺而出介褥,到底是詐尸還是另有隱情,我是刑警寧澤形真,帶...
    沈念sama閱讀 34,322評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站脉课,受9級特大地震影響挂疆,放射性物質發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,934評論 3 313
  • 文/蒙蒙 一庆揩、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧奕枢,春花似錦萌焰、人聲如沸墩邀。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,755評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽孵稽。三九已至,卻和暖如春十偶,著一層夾襖步出監(jiān)牢的瞬間菩鲜,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,987評論 1 266
  • 我被黑心中介騙來泰國打工惦积, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留接校,地道東北人。 一個月前我還...
    沈念sama閱讀 46,358評論 2 360
  • 正文 我出身青樓狮崩,卻偏偏與公主長得像蛛勉,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子睦柴,可洞房花燭夜當晚...
    茶點故事閱讀 43,514評論 2 348

推薦閱讀更多精彩內容