服务器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,不能直接使用于你的服务器。可以为读者提供一些思路。或者后续会完善为更简便的脚本。

centos6――初始化脚本的更多相关文章

  1. three.js模拟实现太阳系行星体系功能

    这篇文章主要介绍了three.js模拟实现太阳系行星体系功能,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下

  2. HTML5页面无缝闪开的问题及解决方案

    这篇文章主要介绍了HTML5页面无缝闪开方案,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  3. ios – 为什么,将nil作为参数从Objc C发送到swift类初始化器,用新对象替换nil参数

    除非属性本身被声明为nonnull:

  4. ios – 使用Swift的Lumberjack 2.0记录器

    我以前使用物镜C的Lumberjack记录器,我喜欢它.现在我开始学习Swift,我不能在那里使用我最喜欢的记录器.有人可以一步一步地写出我能做到的事吗?在Lumberjack2.0发布之前,我尝试在这里找到一些东西,但所有主题都是自定义包装器.我做了什么:>我用Cocoapods添加了Lumberjack;>我将“#import”添加到Bridging-Header文件中.我不知道接下来该怎么办?因为在ObjC中我有宏:staticconstintddLogLevel=LOG_LEVEL_INFO;el

  5. ios – 在Swift中对MKCircle进行子类化

    我想通过添加另一个String属性来继承MKCircle,我们称之为“代码”.这个属性不是可选的和常量的,所以我必须从初始化器设置它,对吧?有没有办法定义一个单一的便利初始化器,在这种情况下需要3个参数?本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请发送邮件至dio@foxmail.com举报,一经查实,本站将立刻删除。

  6. ios – AVAudioPlayer不再使用Swift 2.0/Xcode 7 beta

    对于我的iPhone应用程序中的vartestAudio声明,我在这里收到错误“调用可以抛出,但错误不能从属性初始化程序中抛出”当我转到Xcode7测试版时,就发生了这种情况.如何在Swift2.0中使用此音频剪辑?

  7. ios – 斯威夫特.在初始化所有存储的属性之前在方法调用中使用’self’

    解决方法在初始化所有非可选实例变量之前,您无法在self上调用方法.有几种方法可以解决这个问题.>将属性更改为选项或隐式解包选项(不建议)>使buildCircle()方法静态或只是一个在文件中运行并为所有圆圈调用addSubview()在所有属性初始化并且您调用之后super.init()等等.你必须避免在自己之前打电话给自己class已初始化.

  8. ios – Objective-C警告未找到超类“-init”的指定的初始化程序的方法覆盖

    我在一个应用程序中清理警告,我收到了两次这个警告对于这行代码和这一行我相当新的Objective-C和谷歌这个警告,只是不明白的解决方案我的问题是如何摆脱这些警告?

  9. ios – UICollectionView不能使用UISearchController?

    在WWDC2014年的“AInsideInsidePresentationControllers”中,演示者展示了如何在UITableView中设置UISearchController.他们通过设置searchController的searchBar框架,然后将其设置为tableView的tableHeaderView来实现.不幸的是,UICollectionView没有相当于tableHeade

  10. iOS – 友好的NSDate格式

    我需要在我的应用程序中显示帖子的日期给用户,现在我用这种格式:“5月25日星期五”.如何格式化NSDate以阅读“2小时前”的内容?使其更加用户友好.解决方法NSDateFormatter不能做这样的事情;你将需要建立自己的规则.我想像:所以这是打印’x分钟前’或’x小时前’从日期起24小时,通常是一天.

随机推荐

  1. 在airgapped(离线)CentOS 6系统上安装yum软件包

    我有一个CentOS6系统,出于安全考虑,它已经被空气泄漏.它可能从未连接到互联网,如果有,它很长时间没有更新.我想将所有.rpm软件包放在一个驱动器上,这样它们就可以脱机安装而无需查询互联网.但是,我在测试VM上遇到的问题是,即使指定了本地路径,yum仍然会挂起并尝试从在线存储库进行更新.另外,有没有办法使用yum-utils/yumdownloader轻松获取该包的所有依赖项和所有依赖项?目前

  2. centos – 命名在日志旋转后停止记录到rsyslog

    CentOS6.2,绑定9.7.3,rsyslog4.6.2我最近设置了一个服务器,我注意到在日志轮换后,named已停止记录到/var/log/messages.我认为这很奇怪,因为所有日志记录都是通过rsyslog进行的,并且named不会直接写入日志文件.这更奇怪,因为我在更新区域文件后命名了HUPed,但它仍然没有记录.在我停止并重新启动命名后,记录恢复.这里发生了什么?

  3. centos – 显示错误的磁盘大小

    对于其中一个磁盘,Df-h在我的服务器上显示错误的空白区域:Cpanel表明它只有34GB免费,但还有更多.几分钟前,我删除了超过80GB的日志文件.所以,我确信它完全错了.fdisk-l/dev/sda2也显示错误:如果没有格式化,我该怎么做才能解决这个问题?并且打开文件描述符就是它需要使用才能做到这一点.所以…使用“lsof”并查找已删除的文件.重新启动写入日志文件的服务,你很可能会看到空间可用.

  4. 如何在centos 6.9上安装docker-ce 17?

    我目前正在尝试在centOS6.9服务器上安装docker-ce17,但是,当运行yuminstalldocker-ce时,我收到以下错误:如果我用跳过的标志运行它我仍然得到相同的消息,有没有人知道这方面的方法?

  5. centos – 闲置工作站的异常负载平均值

    我有一个新的工作站,具有不寻常的高负载平均值.机器规格是:>至强cpu>256GB的RAM>4x512GBSSD连接到LSI2108RAID控制器我从livecd安装了CentOS6.564位,配置了分区,网络,用户/组,并安装了一些软件,如开发工具和MATLAB.在启动几分钟后,工作站负载平均值的值介于0.5到0.9之间.但它没有做任何事情.因此我无法理解为什么负载平均值如此之高.你能帮我诊断一下这个问题吗?

  6. centos – Cryptsetup luks – 检查内核是否支持aes-xts-plain64密码

    我在CentOS5上使用cryptsetupluks加密加密了一堆硬盘.一切都很好,直到我将系统升级到CentOS6.现在我再也无法安装磁盘了.使用我的关键短语装载:我收到此错误:在/var/log/messages中:有关如何装载的任何想法?找到解决方案问题是驱动器使用大约512个字符长的交互式关键短语加密.出于某种原因,CentOS6中的新内核模块在由旧版本创建时无法正确读取512个字符的加密密钥.似乎只会影响内核或cryptsetup的不同版本,因为在同一系统上创建和打开时,512字符的密钥将起作用

  7. centos – 大量ssh登录尝试

    22个我今天登录CentOS盒找到以下内容这是过去3天内的11次登录尝试.WTF?请注意,这是我从我的提供商处获得的全新IP,该盒子是全新的.我还没有发布任何关于此框的内容.为什么我会进行如此大量的登录尝试?是某种IP/端口扫描?基本上有4名匪徒,其中2名来自中国,1名来自香港,1名来自Verizon.这只发生在SSH上.HTTP上没有问题.我应该将罪魁祸首子网路由吗?你们有什么建议?

  8. centos – kswap使用100%的CPU,即使有100GB的RAM也可用

    >Linux内核是否应该足够智能,只需从内存中清除旧缓存页而不是启动kswap?

  9. centos – Azure将VM从A2 / 3调整为DS2 v2

    我正在尝试调整前一段时间创建的几个AzureVM,从基本的A3和标准A3到标准的DS2v2.我似乎没有能力调整到这个大小的VM.必须从头开始重建服务器会有点痛苦.如果它有所不同我在VM中运行CentOS,每个都有一个带有应用程序和操作系统的磁盘.任何人都可以告诉我是否可以在不删除磁盘的情况下删除VM,创建新VM然后将磁盘附加到新VM?

  10. centos – 广泛使用RAM时服务器计算速度减慢

    我在非常具体的情况下遇到服务器速度下降的问题.事实是:>1)我使用计算应用WRF>2)我使用双XeonE5-2620v3和128GBRAM(NUMA架构–可能与问题有关!

返回
顶部