首页 > 其他 > 详细

centos6——初始化脚本

时间:2017-02-15 19:40:42      阅读:237      评论:0      收藏:0      [点我收藏+]

服务器centos6初始化脚本,包含几个方面:


修改主机名

添加用户秘钥

ssh 端口修改

ulimit值修改

防火墙修改

添加追踪日志

时间同步

安装一些基础软件包

nagios客户端安装

zabbix客户端安装

salt客户端安装



第一个脚本:


#!/bin/bash

# DATE 2017-02-03 17:01

SPORT=51029

SURL=http://XX.XX.XX.XX

IPTBL="/etc/sysconfig/iptables"

AUTH="authorized_keys"

MD5_DIR="/root/.md5_back"

userlist="user1 user2 user3"

sudouser="user1 user2 user3"

MINION_PATH="/etc/salt/minion"

MASTER="XX.XX.XX.XX"

LANIP=`ifconfig eth0 | grep inet | awk ‘{print $2}‘`

NagiosServer="XX.XX.XX.XX"

TNagios="XX.XX.XX.XX"

NagiosDir="/etc/nagios/nrpe.cfg"


SCRIPT="/mnt/log/script"


if [ ! -d "$MD5_DIR" ];then

    mkdir -p $MD5_DIR

fi


function get_md5() {

    md5_value=`echo -n $1|md5sum|cut -d‘ ‘ -f1`

echo "$1 ----->  $md5_value" >>$MD5_DIR/command_md5.log

}

get_md5 /bin/ls

get_md5 /bin/cp

get_md5 /bin/vi

get_md5 /usr/bin/crontab

get_md5 /etc/passwd

get_md5 /etc/crontab 

get_md5 /usr/bin/last

get_md5 /usr/bin/lastlog




INIT(){


NAME=`hostname`

sed -i ‘/‘$NAME‘/d‘ /etc/hosts

NEWNAME=$1

if [ $# -eq 1 -a ! -z "$NEWNAME"  ];then

    echo "Setting HOSTNAME"

    sed -i "s/$NAME/$NEWNAME/" /etc/sysconfig/network

hostname $NEWNAME

else

    echo "The hostname of this server must not be empty"

    exit 1

fi


#修改/etc/hosts 文件的主机名

echo "$LANIP  $NEWNAME" >> /etc/hosts



###sed -i ‘s/localhost.localdomain/$HNAME/g‘ /etc/sysconfig/network

sed -i ‘s/enforcing/disabled/g‘ /etc/sysconfig/selinux 

#### limit 值修改

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

* soft nofile 65535

* hard nofile 65535

* soft nproc 65535

* hard nproc 65535

EOF



useradd -u 1001 -G wheel user1

useradd -u 1002 -G wheel user2

useradd -u 1003 -G wheel user3


sed -i "/# User_Alias ADMINS = jsmith, mikem/ aUser_Alias ADMINS = $sudouser" /etc/sudoers

sed -i ‘/^root/ aADMINS  ALL=\(ALL\)       ALL‘ /etc/sudoers

sed -i ‘/NOPASSWD: ALL$/ a%wheel          ALL=\(ALL\)       NOPASSWD\: ALL‘ /etc/sudoers


#sed -i ‘s/PasswordAuthentication yes/#PasswordAuthentication yes/g‘ /etc/ssh/sshd_config

#sed -i ‘s/#PermitRootLogin yes/PermitRootLogin no/g‘ /etc/ssh/sshd_config

sed -i ‘s/#PubkeyAuthentication yes/PubkeyAuthentication yes/g‘ /etc/ssh/sshd_config

sed -i ‘/#Port 22/a\Port $SPORT‘ /etc/ssh/sshd_config

service sshd restart


#添加用户登录密钥

for i in $userlist

do

wget $SURL/secret/$i/$AUTH -P /home/$i/.ssh/

chown $i.$i /home/$i/.ssh/$AUTH

chmod 600 /home/$i/.ssh/$AUTH

done


####添加防火墙

RESTART=0

HAVE=$(grep $SPORT $IPTBL | grep -c ACCEPT)

if [ $HAVE -eq 0 ]; then

sed -i "/-i\ lo\ -j\ ACCEPT/a-A INPUT -p tcp -m tcp --dport $SPORT -j ACCEPT" $IPTBL

RESTART=1

fi

if [ $RESTART -eq 1 ]; then

service iptables restart

fi

##添加追踪日志 script log

if [ ! -d $SCRIPT ];then

mkdir -p $SCRIPT

chmod 743 $SCRIPT

fi


cat >> /etc/profile <<EOF

if [ \$UID -ge 1000 ]; then

        exec /usr/bin/script -t 2>$SCRIPT/\$USER-\$UID-\`date +%Y%m%d%H%M\`.date -a -f -q $SCRIPT/\$USER-\$UID-\`date +%Y%m%d%H%M\`.log

fi      

EOF


#时间同步

yum -y install ntpdate

echo ‘02 3 * * * root /usr/sbin/ntpdate cn.pool.ntp.org‘ >> /etc/crontab



###INSTALL make 编译器

yum -y install gcc gcc-c++ make autoconf automake libtool zlib zlib-devel openssl openssl-devel pcre-devel ncurses-devel unixODBC-devel perl-ExtUtils-Embed mesa* gtk+extra-devel mesa* freeglut* lrzsz openssh-clients unzip patch 


}


nagios_client(){

yum -y install nrpe nagios-plugins nagios-plugins-nrpe nrpe nagios-plugins-load nagios-plugins-disk nagios-plugins-swap

sed -i ‘s/allowed_hosts=127.0.0.1/allowed_hosts=‘$NagiosServer‘,‘$TNagios‘/g‘ $NagiosDir

sed -i ‘/check_total_procs/a \command[check_disk]=/usr/lib64/nagios/plugins/check_disk -w 15% -c 10% -p /mnt‘ $NagiosDir

service nrpe start

}


salt_agent(){

# Install salt 2016.03.01

yum -y install https://repo.saltstack.com/yum/redhat/salt-repo-latest-1.el6.noarch.rpm


yum -y update

if [ $? -eq 0 ];then

yum -y install salt-minion

else 

echo "yum update error"

exit 3

fi


#Config /etc/salt/minion

sed -i ‘s/#master: salt/master: ‘$MASTER‘/g‘ $MINION_PATH

sed -i ‘s/#hash_type: sha256/hash_type: sha256/g‘ $MINION_PATH

sed -i ‘/#key_logfile/a\log_file: \/var\/log\/salt\/minion/‘ $MINION_PATH

sed -i ‘s/#key_logfile: \/var\/log\/salt\/key/key_logfile: \/var\/log\/salt\/key/‘ $MINION_PATH


service salt-minion start

}


INIT

nagios_client

salt_agent


以上为初始化脚本。


第二个脚本: 添加zabbix客户端

hname=`hostname`

SURL=http://XX.XX.XX.XX

MASTER="XX.XX.XX.XX"


#判断用户是否存在

add_user_zabbix()

{

name="zabbix"


a=`grep -c $name /etc/passwd`


if [ "$a" -eq 1 ];then

    echo  "THE user $zabbix is aready exist"

    return 1

else

   echo "Add zabbix user"

   groupadd "$name" -g 201

   useradd -g "$name" -u 201 -m "$name"

fi

}



zabbix_agentd_install()

{


log_d="/var/log/zabbix"

#安装所需软件

yum install -y ntpdate gcc gcc-c++


sleep 3

#同步时间

ntpdate asia.pool.ntp.org


sleep 3

#安装zabbix

#切换到src

cd /usr/local/src


echo "Installing zabbix_agentd"

rm -rf zabbix-3.0.4.tar.gz*

sleep 1

echo "Downloading"

wget $SURL/zabbix/zabbix-3.0.4.tar.gz

sleep 1



if [ ! -f "zabbix-3.0.4.tar.gz" ];then

echo "zabbix-3.0.4.tar.gz is not exist"

exit 1

fi



tar zxvf zabbix-3.0.4.tar.gz

cd zabbix-3.0.4

sleep 1

/bin/bash configure --prefix=/usr --sysconfdir=/etc/zabbix --enable-agent

sleep 3


if [ $? != 0 ]; then

  echo "configure was wrong!!"

  exit 1

else

  echo "The zabbix is aready installed!!"

fi 


make && make install

if [ $? != 0 ]; then

  echo "There were something wrong in make!!!"

  exit 1

fi 


#创建zabbix日志目录

if [ ! -d "$log_d" ];then

    mkdir $log_d

fi


chown zabbix.zabbix $log_d


#修改配置文件

/bin/cp misc/init.d/fedora/core/zabbix_agentd /etc/init.d/

chmod 755 /etc/init.d/zabbix_agentd

sed -i "s#BASEDIR=/usr/local#BASEDIR=/usr/#g" /etc/init.d/zabbix_agentd

sed -i "s/Server\=127.0.0.1/Server\=127.0.0.1,$MASTER/g" /etc/zabbix/zabbix_agentd.conf

sed -i "s/ServerActive\=127.0.0.1/ServerActive\=$MASTER:10051/g" /etc/zabbix/zabbix_agentd.conf

sed -i "s/Hostname=Zabbix server/Hostname=$hname/g" /etc/zabbix/zabbix_agentd.conf

sed -i "s#tmp/zabbix_agentd.log#var/log/zabbix/zabbix_agentd.log#g" /etc/zabbix/zabbix_agentd.conf

sed -i "#UnsafeUserParameters=0#aUnsafeUserParameters=1\n" /etc/zabbix/zabbix_agentd.conf

#启动服务

chkconfig zabbix_agentd on

service zabbix_agentd start


return 1

}



pid=`pgrep zabbix_agentd`

if [ -n "$pid" ];then

    echo "the zabbix_agentd is aready installed!"

echo "Do want to reload the zabbix_agentd? Y/N"

read choice

case $choice in

Y) service zabbix_agentd stop;zabbix_agentd_install ;;

N) echo "You choose N,the script will be break";exit 2;;

*) echo "UNknow anwser!";exit 3;;

esac

else

    add_user_zabbix

zabbix_agentd_install

exit 4

fi


以上为整理的初始化centos 6 服务器的脚本。隐藏了一些ip,不能直接使用于你的服务器。可以为读者提供一些思路。或者后续会完善为更简便的脚本。



本文出自 “濛sir的积累” 博客,谢绝转载!

centos6——初始化脚本

原文:http://mengsir.blog.51cto.com/2992083/1897978

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!