系统初始化SHELL脚本

此脚本用于新装Linux的相关配置工作,比如禁掉iptable和SElinux及ipv6,优化系统内核,停掉一些没必要启动的系统服务等。此脚本尤其适全大批新安装的Centsos系列的服务器,脚本代码如下所示(此脚本在Centos5.5_x64下已通过): 

  
  
  
  
  1. #!/bin/bash 
  2. # Created by kerryhu 
  3. # MAIL:[email protected] 
  4. # BLOG:http://kerry.blog.51cto.com 
  5. cat << EOF 
  6. +--------------------------------------------------------------+ 
  7. |         === Welcome to Centos System init ===                | 
  8. +--------------------------------------------------------------+ 
  9. +--------------------------by kerry----------------------------+ 
  10. EOF 
  11.  
  12. #set ntp 
  13. yum -y install ntp 
  14. echo "* 3 * * * /usr/sbin/ntpdate 210.72.145.44 > /dev/null 2>&1" >> /etc/crontab 
  15. service crond restart 
  16. #set ulimit 
  17. echo "ulimit -SHn 102400" >> /etc/rc.local 
  18. #set locale 
  19. #true > /etc/sysconfig/i18n 
  20. #cat >>/etc/sysconfig/i18n<<EOF 
  21. #LANG="zh_CN.GB18030" 
  22. #SUPPORTED="zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en"  
  23. #SYSFONT="latarcyrheb-sun16" 
  24. #EOF 
  25. #set sysctl 
  26. true > /etc/sysctl.conf 
  27. cat >> /etc/sysctl.conf << EOF 
  28. net.ipv4.ip_forward = 0 
  29. net.ipv4.conf.default.rp_filter = 1 
  30. net.ipv4.conf.default.accept_source_route = 0 
  31. kernel.sysrq = 0 
  32. kernel.core_uses_pid = 1 
  33. net.ipv4.tcp_syncookies = 1 
  34. kernel.msgmnb = 65536 
  35. kernel.msgmax = 65536 
  36. kernel.shmmax = 68719476736 
  37. kernel.shmall = 4294967296 
  38. net.ipv4.tcp_max_tw_buckets = 6000 
  39. net.ipv4.tcp_sack = 1 
  40. net.ipv4.tcp_window_scaling = 1 
  41. net.ipv4.tcp_rmem = 4096 87380 4194304 
  42. net.ipv4.tcp_wmem = 4096 16384 4194304 
  43. net.core.wmem_default = 8388608 
  44. net.core.rmem_default = 8388608 
  45. net.core.rmem_max = 16777216 
  46. net.core.wmem_max = 16777216 
  47. net.core.netdev_max_backlog = 262144 
  48. net.core.somaxconn = 262144 
  49. net.ipv4.tcp_max_orphans = 3276800 
  50. net.ipv4.tcp_max_syn_backlog = 262144 
  51. net.ipv4.tcp_timestamps = 0 
  52. net.ipv4.tcp_synack_retries = 1 
  53. net.ipv4.tcp_syn_retries = 1 
  54. net.ipv4.tcp_tw_recycle = 1 
  55. net.ipv4.tcp_tw_reuse = 1 
  56. net.ipv4.tcp_mem = 94500000 915000000 927000000 
  57. net.ipv4.tcp_fin_timeout = 1 
  58. net.ipv4.tcp_keepalive_time = 1200 
  59. net.ipv4.ip_local_port_range = 1024 65535 
  60. EOF 
  61. /sbin/sysctl -p 
  62. echo "sysctl set OK!!" 
  63. #close ctrl+alt+del 
  64. sed -i "s/ca::ctrlaltdel:\/sbin\/shutdown -t3 -r now/#ca::ctrlaltdel:\/sbin\/shutdown -t3 -r now/" /etc/inittab 
  65. #set purview  
  66. chmod 600 /etc/passwd 
  67. chmod 600 /etc/shadow 
  68. chmod 600 /etc/group 
  69. chmod 600 /etc/gshadow 
  70. #disable ipv6 
  71. cat << EOF 
  72. +--------------------------------------------------------------+ 
  73. |         === Welcome to Disable IPV6 ===                      | 
  74. +--------------------------------------------------------------+ 
  75. EOF 
  76. echo "alias net-pf-10 off" >> /etc/modprobe.conf 
  77. echo "alias ipv6 off" >> /etc/modprobe.conf 
  78. /sbin/chkconfig --level 35 ip6tables off 
  79. echo "ipv6 is disabled!" 
  80. #disable selinux 
  81. sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config 
  82. echo "selinux is disabled,you must reboot!" 
  83. #vim 
  84. sed -i "8 s/^/alias vi='vim'/" /root/.bashrc 
  85. echo 'syntax on' > /root/.vimrc 
  86. #zh_cn 
  87. sed -i -e 's/^LANG=.*/LANG="en"/'   /etc/sysconfig/i18n 
  88. #init_ssh 
  89. ssh_cf="/etc/ssh/sshd_config" 
  90. sed -i -e '74 s/^/#/' -i -e '76 s/^/#/' $ssh_cf 
  91. #sed -i "s/#Port 22/Port 65535/" $ssh_cf 
  92. sed -i "s/#UseDNS yes/UseDNS no/" $ssh_cf 
  93. #client 
  94. sed -i -e '44 s/^/#/' -i -e '48 s/^/#/' $ssh_cf 
  95. service sshd restart 
  96. echo "ssh is init is ok.............." 
  97. #chkser 
  98. #tunoff services 
  99. #-------------------------------------------------------------------------------- 
  100. cat << EOF 
  101. +--------------------------------------------------------------+ 
  102. |         === Welcome to Tunoff services ===                   | 
  103. +--------------------------------------------------------------+ 
  104. EOF 
  105. #--------------------------------------------------------------------------------- 
  106. for i in `ls /etc/rc3.d/S*` 
  107. do 
  108.               CURSRV=`echo $i|cut -c 15-` 
  109. echo $CURSRV 
  110. case $CURSRV in 
  111.           crond | irqbalance | microcode_ctl | network | random | sshd | syslog | local ) 
  112.       echo "Base services, Skip!" 
  113.       ;; 
  114.       *) 
  115.           echo "change $CURSRV to off" 
  116.           chkconfig --level 235 $CURSRV off 
  117.           service $CURSRV stop 
  118.       ;; 
  119. esac 
  120. done 
  121. echo "service is init is ok.............." 

本脚本摘录自《构建高可用Linux服务器》(机械工业出版社) 一书,转载麻烦注明出处,谢谢。

本文出自 “抚琴煮酒” 博客http://andrewyu.blog.51cto.com/1604432/724103

你可能感兴趣的:(构建高可用Linux服务器)