CentOS7系统初始化脚本

[root@linux-node1 ~]# cat optimize.sh 
#!/bin/bash
# Optimize the system after installation
PASSWD=reid
NETIP=192.168.56.11
PROTOBOOT=static
HOSTNAME=linux-node1.example.com
DNS1=192.168.56.2
NTPSERVER=ntp1.aliyun.com
YUMREPO=http://mirrors.aliyun.com/repo/Centos-7.repo
EPELREPO=http://mirrors.aliyun.com/repo/epel-7.repo
SSH_PORT=22122
# in case of some bad behaviours
CHATTR=chenhao
# Open the port for iptabeles input or maybe stop iptables
PORTS=80,22,21,8088
# record the system user,ip addresse,shell command and detail
HISTDIR=/usr/etc/.history

# the welcome info
cat << EOF
+------------------------------------------------------------------+
|     **********  Welcome to CentOS 7.x System init  **********    |
+------------------------------------------------------------------+
EOF
[ `whoami` != "root" ] && echo "please use root" && exit 1 
function format() {
    echo -e "\033[32m Success!!!\033[0m\n"
    echo "#########################################################"
}

###change the root passwd
echo "set root passwd"
echo $PASSWD | passwd root --stdin &> /dev/null
format

###change network setting
echo ""> /etc/sysconfig/network-scripts/ifcfg-eth0
echo "TYPE=Ethernet"  >> /etc/sysconfig/network-scripts/ifcfg-eth0
echo "NAME=eth0"  >> /etc/sysconfig/network-scripts/ifcfg-eth0
echo "DEVICE=eth0" >> /etc/sysconfig/network-scripts/ifcfg-eth0
echo "ONBOOT=yes" >> /etc/sysconfig/network-scripts/ifcfg-eth0
echo "BOOTPROTO=$PROTOBOOT"  >> /etc/sysconfig/network-scripts/ifcfg-eth0
echo "IPADDR=$NETIP"  >> /etc/sysconfig/network-scripts/ifcfg-eth0
echo "NETMASK=255.255.255.0"  >>  /etc/sysconfig/network-scripts/ifcfg-eth0
#systemctl restart network
format

#stop NetworkManager
systemctl stop NetworkManager
systemctl diable NetworkManager
format

###add route 
route add default gateway $DNS1
echo "route add default gateway $DNS1" >/etc/profile.d/add-route.sh
format

###change the hostname
echo "set hostname"
hostname $HOSTNAME && echo "$HOSTNAME" > /etc/hostname
format

###change the dns
echo "set DNS"
echo "" > /etc/resolv.conf     
echo "nameserver $DNS1" > /etc/resolv.conf
#echo "nameserver $DNS2" >> /etc/resolv.conf
ping -c 3 www.baidu.com &> /dev/null || echo "Network is unreachable" || exit 3
format

###diable selinux
echo "disable selinux"
[ `getenforce` != "Disabled" ] && setenforce 0 &> /dev/null && sed -i s/"^SELINUX=.*$"/"SELINUX=disabled"/g /etc/sysconfig/selinux
format

###update yum repo
echo "set yum mirrors"
cd /etc/yum.repos.d/
mv CentOS-Base.repo CentOS-Base.repo.bak
curl -o /etc/yum.repos.d/CentOS-Base.repo $YUMREPO &> /dev/null
curl -o /etc/yum.repos.d/epel.repo $EPELREPO &> /dev/null
mv /var/cache/yum /tmp
yum clean all &> /dev/null && yum makecache &> /dev/null
format

###install the basic command
yum install vim wget openssl-devel ntpdate make gcc-c++  ncurses-devel net-snmp sysstat lrzsz zip unzip tree net-tools lftp -y
#yum -y groupinstall "Development Tools" "Server Platform Development" &> /dev/null
format

### change ssh port
#echo "set sshd"
#cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
#sed -i s/"^Port 22"/"Port $SSH_PORT"/g /etc/ssh/sshd_config
#sed -i s/"^UseDNS yes"/"UseDNS no"/g /etc/ssh/sshd_config
#service sshd restart &> /dev/null

###lock the important file($CHATTR -i to disable)
#echo "chattr files"
#chattr +i /etc/passwd
#chattr +i /etc/inittab
#chattr +i /etc/group
#chattr +i /etc/shadow
#chattr +i /etc/gshadow
#chattr +i /etc/resolv.conf
#chattr +i /etc/hosts
#chattr +i /etc/fstab
#mv /usr/bin/chattr /usr/bin/$CHATTR

###character set
echo "set LANG"
#sed -i s/"^LANG=.*$"/"LANG=zh_CN.UTF-8"/ /etc/locale.conf
#source /etc/locale.conf

###update timezone
echo "set ntptime"
mv /etc/localtime /tmp cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime ntpdate $NTPSERVER &> /dev/null echo "*/5 * * * * /usr/sbin/ntpdate $NTPSERVER &>/dev/null" >> /etc/crontab hwclock -w format ###set the system limit echo "Set ulimit 65535" cat << EOF > /etc/security/limits.conf * soft nofile 65535 * hard nofile 65535 * soft nproc 65535 * hard nproc 65535 EOF sed -i 's/65535/1024000/g' /etc/security/limits.d/90-nproc.conf format ###system audit and trouleshooting echo "set history" cat >> /etc/profile.d/system-audit.sh << EOF USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'` if [ -z $USER_IP ] then USER_IP=`hostname` fi if [ ! -d $HISTDIR ] then mkdir -p $HISTDIR chmod 777 $HISTDIR fi if [ ! -d $HISTDIR/${LOGNAME} ] then mkdir -p $HISTDIR/${LOGNAME} chmod 300 $HISTDIR/${LOGNAME} fi export HISTSIZE=2000 DT=`date +%Y%m%d_%H%M%S` export HISTFILE="$HISTDIR/${LOGNAME}/${USER_IP}.history.$DT" export HISTTIMEFORMAT="[%Y.%m.%d %H:%M:%S] " chmod 600 $HISTDIR/${LOGNAME}/*.history* 2>/dev/null ulimit -SHn 65535 ulimit -SHu unlimited ulimit -SHd unlimited ulimit -SHm unlimited ulimit -SHs unlimited ulimit -SHt unlimited ulimit -SHv unlimited EOF source /etc/profile.d/system-audit.sh format ###show the system info echo "Set login message." echo "This is Product Server" > /etc/issue format ###iptables setting echo "set iptables" systemctl stop firewalld systemctl disable firewalld format #iptables -F #iptables -A INPUT -p tcp -m multiport --dports $SSH_PORT,$PORTS -j ACCEPT #iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT #iptables -A INPUT -i lo -j ACCEPT #iptables -A OUTPUT -m state --state NEW,ESTABLISHED -j ACCEPT #iptables -P INPUT DROP #iptables -P FORWARD DROP #iptables -P OUTPUT ACCEPT #service iptables save &> /dev/null # reboot the system after setting reboot

  

原文链接: https://www.cnblogs.com/reid21/p/9195557.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    CentOS7系统初始化脚本

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/276236

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月15日 上午1:34
下一篇 2023年2月15日 上午1:35

相关推荐