centos6.x 初始化脚本

#!/bin/bash  
#:***********************************************  
#:Program:centos6_init_shell  
#:  
#:Author:yanconggod  
#:  
#:History:2017-01-10  
#:  
#:Version:1.0  
#:***********************************************  
cat <<EOF  
 +--------------------------------------------------------------+  
 |          === Welcome to  System init ===                     |  
 +--------------------------------------------------------------+  
EOF
  
DATE=`date +%Y_%m_%d:%H_%M_%S`  
INIT_LOG=system_init_$DATE.log 
  
#0.yum resource config  
#mv /etc/yum.repos.d/* /tmp/  
#wget -P /etc/yum.repos.d/ http://yum.xxx.xxx/{CentOS-Base.repo,epel.repo}  
yum clean all  
yum install vim gcc gcc-c++ openssl-devel python-devel lrzsz tree ftp telnet -y  
  
#1.del_user_group_config  
USER=(adm lp shutdown halt uucp operator games gopher)  
for i in `echo ${USER[*]}`  
do  
    if grep -qs "$i" /etc/passwd;then  
        /usr/sbin/userdel $i  
    else  
        echo "$i is no exist"  
    fi  
done  
GROUP=(adm lp dip)  
for ii in `echo ${GROUP[*]}`  
do  
    if grep -qs "$ii" /etc/group;then  
        /usr/sbin/groupdel $ii  
    else  
        echo "$ii is no exist"  
    fi  
done  
if [ "$?" == "0" ];then  
    echo "$DATE [del_user_group_config] is [success]"  >> /root/${INIT_LOG}  
fi  
#2.add_users_config  
#指定UID,密码不能明文显示  
/usr/sbin/useradd -u 1001 -m -G 10 yanconggod  
sed -i ‘/yanconggod/s#\!\!#\$6\$nRS2zBCw\$9AuQZSdYJezLTyzinOQzfcp1je2EGAD5oL7d3JeAeSXKoVGd920\.vX\/dPFuyP\/C2VexJQa5PpPD\/wRfE0m\.9A\/#g‘ /etc/shadow  
  
USER1=(yanconggod)  
for yl in `echo ${USER1[*]}`  
do  
    if grep -qs "$yl" /etc/passwd;then  
        echo "$DATE $yl is added success" >>/root/${INIT_LOG}  
    fi  
done  
#3.sudoer_config  
sed -i ‘s/Defaults    requiretty/#Defaults    requiretty/g‘ /etc/sudoers  
echo -e "User_Alias SYSADMINS = yanconggod" >> /etc/sudoers  
echo -e "SYSADMINS       ALL=(ALL)       NOPASSWD: ALL" >> /etc/sudoers  
echo "$DATE [sudoer_config] is [success]" >>/root/${INIT_LOG}  
#4.limits_config  
echo "*                soft   nofile          65535" >>/etc/security/limits.conf  
echo "*                hard   nofile          65535" >>/etc/security/limits.conf  
echo "*                soft   noproc          65535" >>/etc/security/limits.conf  
echo "*                hard   noproc          65535" >>/etc/security/limits.conf  
sed -i ‘/1024/s/1024/65535/g‘ /etc/security/limits.d/90-nproc.conf  
echo "$DATE [limits_config] is [success]" >>/root/${INIT_LOG}  
#5.sysctl_config  
echo "net.ipv4.tcp_syncookies = 1" >> /etc/sysctl.conf  
echo "net.ipv4.tcp_fin_timeout = 30" >> /etc/sysctl.conf  
echo "net.ipv4.tcp_tw_recycle = 1" >> /etc/sysctl.conf  
echo "net.ipv4.tcp_tw_reuse = 1" >> /etc/sysctl.conf  
echo "net.ipv4.tcp_max_syn_backlog = 4096" >> /etc/sysctl.conf  
echo "net.core.netdev_max_backlog = 10240" >> /etc/sysctl.conf  
echo "net.ipv4.icmp_echo_ignore_broadcasts = 1" >> /etc/sysctl.conf  
echo "net.core.somaxconn = 2048" >> /etc/sysctl.conf  
echo "net.core.wmem_default = 8388608" >> /etc/sysctl.conf  
echo "net.core.rmem_default = 8388608" >> /etc/sysctl.conf  
echo "net.core.rmem_max = 16777216" >> /etc/sysctl.conf  
echo "net.core.wmem_max = 16777216" >> /etc/sysctl.conf  
echo "net.ipv4.conf.all.rp_filter = 1" >> /etc/sysctl.conf  
echo "net.ipv4.tcp_keepalive_time = 300" >> /etc/sysctl.conf  
echo "net.ipv4.tcp_synack_retries = 2" >> /etc/sysctl.conf  
echo "net.ipv4.tcp_syn_retries = 2" >> /etc/sysctl.conf  
echo "net.ipv4.ip_local_port_range = 5000    65000 " >> /etc/sysctl.conf  
sysctl -p  
echo "$DATE [sysctl_config] is [success]" >>/root/${INIT_LOG}  
#6.history_config  
echo "export HISTSIZE=2000" >> /etc/profile  
source /etc/profile  
echo "$DATE [history_config] is [success]" >>/root/${INIT_LOG}  
#7.pass_length and login count limit  
#sed -i ‘25s/99999/90/g‘ /etc/login.defs  
#sed -i ‘27s/5/8/g‘ /etc/login.defs  
sed -i ‘5i auth        required      /lib64/security/pam_tally2.so deny=5 unlock_time=300‘ /etc/pam.d/system-auth  
#8.disable_selinux_config  
sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/‘ /etc/selinux/config  
setenforce 0  
echo "$DATE [disable_selinux_config] is [success]" >>/root/${INIT_LOG}  
#9.ntp_config  
ntp_config_count=`crontab -l | grep ntpdate|wc -l`  
if [ ${ntp_config_count} -eq 0 ];then  
cat  <<EOF   >> /var/spool/cron/root    
*/5 * * * * /usr/sbin/ntpdate -s ntp1.aliyun.com >/dev/null 2>&1 
EOF

fi

  
if [ $? = 0 ];then  
    echo "$DATE [ntp_config] is [success]" >>/root/${INIT_LOG}  
fi  
#10.maxlogins_config  
echo "yanconggod          -       maxlogins       10" >> /etc/security/limits.conf  
echo "$DATE [maxlogins_config] is [success]" >>/root/${INIT_LOG}  
#11.disbled_ipv6_config  
cat >>/etc/modprobe.d/disableipv6.conf << EOF
alias net-pf-10 off  
options ipv6 disable=1  
EOF

echo "$DATE [disble_ipv6_config] is [success]" >>/root/${INIT_LOG}
#12.character_config  
cat >> /etc/sysconfig/i18n << EOF
LANG="en_US.UTF-8"  
SYSFONT="latarcyrheb-sun16"  
EOF

#13.disable_service_config  
for i in auditd blk-availability ip6tables iptables lvm2-monitor netfs udev-post  
do  
chkconfig $i off  
#iptables -F  
#iptables -X  
done  
echo "$DATE [disable_service_config] is [success]" >>/root/${INIT_LOG}  
#15.DNS config  
MASK=`ifconfig | grep -w "inet" | grep -v 127.0.0.1|awk -F‘:‘ ‘{print $2}‘|sed ‘s/ Bcast$//g‘| awk -F‘.‘ ‘{print $1"."$2}‘`  
  
echo $MASK  
if [ $MASK = "10.0" -o $MASK = "10.1" ]  
then  
cat > /etc/resolv.conf << EOF  
nameserver 10.0.0.1 
#nameserver 1.1.1.2  
#nameserver 1.1.1.3  
EOF

else  
    :  
fi  
#16.sshd_config  
sed "s/#Port 22/Port 22/g" /etc/ssh/sshd_config -i  
sed "s/^#Protocol 2/Protocol 2/g" /etc/ssh/sshd_config -i  
sed "s/#UseDNS yes/UseDNS no/g" /etc/ssh/sshd_config -i  
#sed ‘s/#PermitRootLogin yes/PermitRootLogin no/g‘ /etc/ssh/sshd_config -i  
#sed ‘s/GSSAPIAuthentication yes/GSSAPIAuthentication no/g‘ /etc/ssh/sshd_config -i  
#sed ‘s/GSSAPIAuthentication yes/GSSAPIAuthentication no/g‘ /etc/ssh/ssh_config -i  
/etc/init.d/sshd restart  
echo "$DATE [sshd_config] is [success]" >>/root/${INIT_LOG}  
#17. reboot_system
read -p "Do you want to reboot the system?" want  
                    case $want in  
  
                                 yes)  
                                 echo "reboot now!"  
                                 reboot  
                                 ;;  
  
                                 no)  
                                 echo "init over!"  
                                 ;;  
  
                                 *)  
                                 echo "please useage yes or no! thanks"  
                                 ;;  
  
                    esac
时间: 2024-10-14 00:33:11

centos6.x 初始化脚本的相关文章

CentOS6系统初始化脚本

#!/bin/bash ### Usage: This script use to config linux system #获取IP地址 172.16.100.100 outip=`ifconfig eth1 |grep inet|cut -f 2 -d ":" |cut -f 1 -d " "|awk -F "." '{print $4}'` #定义系统主机名 hostname=dbbak$outip.mstuc.cn1 #修改yum源  #

Centos6 系统初始化

系统安装完之后,一般不会马上去部署应用.首先需要对系统进行优化,包括:文件句柄优化.服务器时间同步.内核参数的优化.iptables优化等. 需要根据自己的业务,优化相应的参数.如下是之前写的一个初始化脚本. #!/bin/bash #this script is only for CentOS 6 #check the OS #Author: David.zhang yum -y groupinstall "base" yum -y install lsb wget yum -y i

linux系统监控工具汇总及几个小脚本 , 系统初始化脚本

重要性能监测工具:top.vmstat.w.uptime.ps.free.iostat.netstat./proc等 需要监视Linux服务器的性能?大多数Linux发行版都集成了一些监视工具.这些工具可以获取有关系统活动的信息的详细指标.通过这些工具,你可以发现产生系统性能问题可能存在原因.下面讨论的是一些最基本的命令,它涉及到系统分析和调试服务器等一些问题,如:1.    找出系统瓶颈问题.2.    磁盘 (储存) 瓶颈问题.3.    CPU和内存瓶颈问题.4.    网络瓶颈问题.#

linux系统最小化安装后的初始化脚本

作为运维人员,经常会初始化系统,系统在安装过程中基本都会选择最小化安装,这样安装好的系统里会缺少很多环境. 下面分享一个系统安装后的初始化脚本: #!/bin/bash #系统时最小化安装的,这里要安装系统的软件库yum groupinstall -y "development tools" #创建目录[ ! -d /server/tools ] && mkdir -p /server/tools[ ! -d /application ] && mkdi

Centos 初始化脚本

系统初始化脚本可以统一.自动配置,减少人力. 这里浅谈一下yum安装与源码编译安装,请各位不吝指正.我一直坚持yum安装,原因如下 一.安装方便,不需要再花精力考虑依赖问题 二.配置统一,方便后期维护,自动化等 三.方便升级 四.好吧,我是菜鸡,我承认了 唯有业务明确需要某新功能,才会使用源码安装.关于这点,和尘缘的观点类似,详见其博文 #!/bin/bash  #  #Change yum source  rpm -Uvh  http://dl.fedoraproject.org/pub/ep

Linux初始化脚本

以下脚本用于linux系统的初始化脚本,可以在服务器系统安装完毕之后立即执行.脚本结合各位大牛一些参数,已经在CentOS 5下通过. 使用方法:将其复制,保存为一个shell文件,比如init.sh.将其上传到linux服务器上,执行sh init.sh.建议大家在系统安装后立即执行. 脚本代码: #!/bin/bash # Configure yum source cd /tmp wget -c http://yum.baseurl.org/download/3.4/yum-3.4.3.ta

centos7 系统初始化脚本

现在自己的本地虚拟机系统,直接安装的是centos7.2 mini版,安装完成发现好多东西都没有安装,所以写了一个简单的系统初始化脚本,让自己可以省一些力气,哈哈 人懒主要是. 下面贴出写的脚本,脚本里面有好多地方写的不是特别完善,希望大家给出意见,让我来完善它. #!/bin/bash function readme(){echo ==========编写一个关于centos7 最小化系统安装后 需要设置的东西 ==========echo ==========1.默认执行dhclient,获

unix 初始化脚本

unix系统中, 常用的初始化脚本有两个:.bashrc 和 .bash_profile,比较容易混淆. 这两个脚本的主要区别在于,触发执行的条件不一样: .bash_profile 使用用户名.密码登录成功之后,会被触发执行 .bashrc 打开新的窗口,比如 ubuntu terminal中输入 ctrl + shift + t,会打开新窗口,此时执行 .bashrc 脚本 一般来说,为了防止 .bash_profile 和 .bashrc 两个脚本的内容有重合,可以在 .bash_prof

分析MariaDB初始化脚本mysql_install_db

在初始化MySQL的过程中经常会碰到各种问题,如 FATAL ERROR: Could not find ./bin/my_print_defaults ERROR: 1 Can't create/write to file '/root/test/data/mysql/db.MYI' (Errcode: 13 - Permission denied)  出现这些问题的原因无非是两种, 1> 没有传递合适的参数. 譬如: [[email protected] ~]# /usr/test/mari