开发者社区> 华章计算机> 正文

Linux集群和自动化维2.6.5 自动化类脚本

简介:
+关注继续查看

2.6.5 自动化类脚本


1.批量生成账户脚本

在内网开发环境中,有时需要为开发组的同事批量生成账户,如果手动添加的话会非常麻烦,这时可以写一段Shell脚本来自动完成这项工作。在首次登录时密码均是统一的,在移交给开发人员使用时让他们自行更改即可,脚本代码如下(此脚本在CentOS 5.8 / 6.4 x86_64下均已测试通过):

#!/bin/bash

#此脚本应用于开发环境下批量生成用户

for name in tom jerry joe jane yhc brain

do

      useradd $name

      echo redhat | passwd --stdin $name

don

passwd --stdin这行代码的的作用是将前面的输入通过管道命令作为自己的输出,从而避免脚本交互,达到自动化的目的。

笔者个人觉得用脚本的方式来批量自动添加用户的方法较之Ansible的user模块更为简便,有兴趣的朋友也可以研究比较下。

2.系统初始化脚本

此脚本用于新装Linux的相关配置工作,比如禁用iptables、SElinux及ipv6,优化系统内核,停掉一些没必要启动的系统服务等。此脚本可用于公司内部的开发机器的批量部署,脚本代码如下所示(此脚本在CentOS 6.4 x86_64下已测试通过):

#!/bin/bash

#添加epel外部yum扩展源

cd /usr/local/src

wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

rpm -ivh epel-release-6-8.noarch.rpm

#安装gcc基础库文件及sysstat工具

yum -y install gcc gcc-c++ vim-enhanced unzip unrar sysstat

#配置ntpdate自动对时

yum -y install ntp

echo "01 01 * * * /usr/sbin/ntpdate ntp.api.bz    >> /dev/null 2>&1" >> /etc/crontab

ntpdate ntp.api.bz

service crond restart

#配置文件的ulimit值

ulimit -SHn 65534

echo "ulimit -SHn 65534" >> /etc/rc.local

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

*                     soft     nofile             65534

*                     hard     nofile             65534

EOF

 

#基础系统内核优化

cat >> /etc/sysctl.conf << EOF

net.ipv4.tcp_syncookies = 1

net.ipv4.tcp_syn_retries = 1

net.ipv4.tcp_tw_recycle = 1

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_fin_timeout = 1

net.ipv4.tcp_keepalive_time = 1200

net.ipv4.ip_local_port_range = 1024 65535

net.ipv4.tcp_max_syn_backlog = 16384

net.ipv4.tcp_max_tw_buckets = 36000

net.ipv4.route.gc_timeout = 100

net.ipv4.tcp_syn_retries = 1

net.ipv4.tcp_synack_retries = 1

net.core.somaxconn = 16384

net.core.netdev_max_backlog = 16384

net.ipv4.tcp_max_orphans = 16384

EOF

/sbin/sysctl -p

 

#禁用control-alt-delete组合键以防止误操作

sed -i 's@ca::ctrlaltdel:/sbin/shutdown -t3 -r now@#ca::ctrlaltdel:/sbin/shutdown -t3 -r now@' /etc/inittab

#关闭SElinux

sed -i 's@SELINUX=enforcing@SELINUX=disabled@' /etc/selinux/config

#关闭iptables

service iptables stop

chkconfig iptables off

#ssh服务配置优化,请保持机器中至少有一个具有sudo权限的用户,下面的配置会禁止root远程登录

sed -i 's@#PermitRootLogin yes@PermitRootLogin no@' /etc/ssh/sshd_config #禁止          root远程登录

sed -i 's@#PermitEmptyPasswords no@PermitEmptyPasswords no@' /etc/ssh/sshd_config        #禁止空密码登录

sed -i 's@#UseDNS yes@UseDNS no@' /etc/ssh/sshd_config /etc/ssh/sshd_config

service sshd restart

#禁用ipv6地址

echo "alias net-pf-10 off" >> /etc/modprobe.d/dist.conf

echo "alias ipv6 off" >> /etc/modprobe.d/dist.conf

chkconfig ip6tables off

#vim基础语法优化

echo "syntax on" >> /root/.vimrc

echo "set nohlsearch" >> /root/.vimrc

#精简开机自启动服务,安装最小化服务的机器初始可以只保留crond、network、rsyslog、sshd这4个服务。

for i in `chkconfig --list|grep 3:on|awk '{print $1}'`;do chkconfig --level 3 $i off;done

for CURSRV  in crond rsyslog sshd network;do chkconfig --level 3 $CURSRV on;done

#重启服务器

reboot

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
手撸一款简单高效的线程池(一)
线程池大家应该都用过,不过如何从 0 到 1 的设计一款简单好用且性能较好的线程池?我们在接下来的几篇文章中,为您一一介绍。
4 0
基于springboot来实现对日志文件内容的监控
基于springboot来实现对日志文件内容的监控
4 0
手撸一款简单高效的线程池(五)
在之前的内容中,我们给大家介绍了 C++实现线程池过程中的一些常用线优化方案,并分析了不同机制使用时的利弊。这一篇,是线程池系列的最后一章。我们会介绍一下 CGraph 中的 threadpool 如何使用,给出性能对比,并对接下来的工作做一些展望。让我们在线程池性能优化和功能提升的道路上,越走越远。
5 0
Travis CI 自动化构建 Hexo 博客
前提条件: • 必须使用一个public的项目, 然后登陆https://travis-ci.org/ 进行关联. • 已存在一个hexo的可以跑起来的项目 在你的hexo源码项目, 取出master分支中 添加配置文件.travis.yml,并推送到acc8226.github.io项目中.
7 0
10059
文章
0
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载