<b>2.6.5 自動化類腳本</b>
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下已測試通過):
#添加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自動對時
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
#基礎系統核心優化
/etc/sysctl.conf << eof
net.ipv4.tcp_syncookies
= 1
net.ipv4.tcp_syn_retries
net.ipv4.tcp_tw_recycle
net.ipv4.tcp_tw_reuse
net.ipv4.tcp_fin_timeout
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_synack_retries
net.core.somaxconn
net.core.netdev_max_backlog
net.ipv4.tcp_max_orphans
/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
's@selinux=enforcing@selinux=disabled@' /etc/selinux/config
#關閉iptables
service iptables
stop
chkconfig
iptables off
#ssh服務配置優化,請保持機器中至少有一個具有sudo權限的使用者,下面的配置會禁止root遠端登入
's@#permitrootlogin yes@permitrootlogin no@' /etc/ssh/sshd_config #禁止
root遠端登入
's@#permitemptypasswords no@permitemptypasswords no@' /etc/ssh/sshd_config #禁止空密碼登入
's@#usedns yes@usedns no@' /etc/ssh/sshd_config /etc/ssh/sshd_config
service sshd
#禁用ipv6位址
echo "alias
net-pf-10 off" >> /etc/modprobe.d/dist.conf
ipv6 off" >> /etc/modprobe.d/dist.conf
ip6tables off
#vim基礎文法優化
"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