该脚本是我常用的系统安装后执行脚本,包括开机启动服务、内核、SSH优化。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#!/bin/sh
 
# 服务优化,(sshd、network、crond、syslog、rsyslog)服务保持默认开机启动
ServiceList=$(chkconfig --list |  grep  '0'  awk  '{print $1}'  grep  -Ev  'sshd|network|crond|syslog' )
 
for  Service  in  $ServiceList
do
     /etc/init .d/$Service stop
     chkconfig --level 0123456 $Service off
done
 
# 内核参数调优
grep  -q  "vm.swappiness"  /etc/sysctl .conf ||  cat  >>  /etc/sysctl .conf << EOF
########################################
vm.swappiness = 0
net.core.rmem_default = 262144
net.core.rmem_max = 16777216
net.core.wmem_default = 262144
net.core.wmem_max = 16777216
net.core.somaxconn = 262144
net.core.netdev_max_backlog = 262144
net.ipv4.tcp_max_orphans = 262144
net.ipv4.tcp_max_syn_backlog = 262144
net.ipv4.tcp_max_tw_buckets = 10000
net.ipv4.ip_local_port_range = 1024 65500
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.tcp_mem = 786432 1048576 1572864
fs.aio-max-nr = 1048576
fs. file -max = 6815744
kernel.sem = 250 32000 100 128
fs.inotify.max_user_watches = 1048576
EOF
sysctl -p
 
grep  -q  "* - nofile"  /etc/security/limits .conf ||  cat  >>  /etc/security/limits .conf << EOF
########################################
* - nofile 1048576
* - nproc  65536
* - stack  1024
EOF
 
grep  -q  "ulimit -n"  /etc/profile  ||  cat  >>  /etc/profile  << EOF
########################################
ulimit  -n 1048576
ulimit  -u 65536
ulimit  -s 1024
 
alias  grep = 'grep --color=auto'
export  HISTTIMEFORMAT= "%Y-%m-%d %H:%M:%S "
EOF
 
# 禁用并关闭selinux
sed  -i  's/SELINUX=enforcing/SELINUX=disabled/'  /etc/selinux/config
setenforce 0
 
# 优化SSH
sed  -i  's/.*UseDNS yes/UseDNS no/'  /etc/ssh/sshd_config
sed  -i  's/.*GSSAPIAuthentication yes/GSSAPIAuthentication no/'  /etc/ssh/sshd_config
/etc/init .d /sshd  restart
 
# 脚本目录加入PATH环境变量
grep  -q  "/App/script"  $HOME/.bash_profile ||  cat  >> $HOME/.bash_profile << EOF
########################################
export  PATH= /App/script :\$PATH
EOF
 
mkdir  -p  /App/script  /App/src
 
# 挂载tmpfs文件系统
mount  --bind  /dev/shm  /tmp
grep  -q  "/dev/shm"  /etc/rc . local  ||  echo  "/bin/mount --bind /dev/shm /tmp"  >>  /etc/rc . local