#!/bin/bash #========================================================== #========================================================== #配置IP地址 #------------------------(開始)-------------------------- sudo ifconfig eth0 up #臨時啓用 rm -f /etc/sysconfig/network-scripts/ifcfg-eth0 #刪除eth0配置文件 touch /etc/sysconfig/network-scripts/ifcfg-eth0 #建立eth0配置文件 cat >>/etc/sysconfig/network-scripts/ifcfg-eth0<<kkk DEVICE=eth0 TYPE=Etherne ONBOOT=yes IPADDR=192.168.80.100 #IP NETMASK=255.255.255.0 #子網掩碼 GATEWAY=192.168.80.2 #網關 DNS1=114.114.114.114 DNS2=8.8.8.8 kkk service network restart #重啓網絡服務 #------------------------(結束)-------------------------- #========================================================== #========================================================== #配置阿里雲YUM源 #------------------------(開始)-------------------------- mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak #先將原始的CentOS-Base.repo文件保存下載更更改其名稱 wget -O /etc/yum.repos.d/CentOS-Base.repo http://7xqer8.com1.z0.glb.clouddn.com/Centos-6.repo # 下面開始下載阿里雲的YUM源,編輯並建立CentOS-Base.repo文件 yum clean all #先清除YUM的緩存 yum makecache #更新YUM的緩存文件 #------------------------(結束)-------------------------- #========================================================== #========================================================== #關閉不須要的開機啓動服務 #------------------------(開始)-------------------------- for service in `chkconfig --list|grep 3:on|awk '{print $1}'`;do chkconfig --level 3 $service off;done #關閉全部開機自動啓動的默認系統服務 for service in crond network rsyslog sshd;do chkconfig --level 3 $service on;done #開啓指定的開機自動啓動的默認系統服務 #------------------------(結束)-------------------------- #========================================================== #========================================================== #優化ssd設置 #------------------------(開始)-------------------------- sed -i 's%#PermitEmptyPasswords no%PermitEmptyPasswords no%' /etc/ssh/sshd_config #禁止遠程登陸使用空密碼登陸 sed -i 's%#UseDNS yes%UseDNS no%' /etc/ssh/sshd_config #使用DNS登陸 參數爲no則是不使用 /etc/init.d/sshd reload #重啓sshd服務 #------------------------(結束)--------------------------
臨時配置IP地址linux
sudo ifconfig eth0 192.168.80.10
永久配置IP地址nginx
編輯建立腳本文件git
vi ifconfig.sh
如下內容爲配置IP地址的腳本文件web
rm -f /etc/sysconfig/network-scripts/ifcfg-eth0
#刪除eth0配置文件
touch /etc/sysconfig/network-scripts/ifcfg-eth0 #建立eth0配置文件 cat >>/etc/sysconfig/network-scripts/ifcfg-eth0<<kkk DEVICE=eth0 TYPE=Etherne ONBOOT=yes IPADDR=192.168.80.100 #IP NETMASK=255.255.255.0 #子網掩碼 GATEWAY=192.168.80.2 #網關 DNS1=114.114.114.114 DNS2=8.8.8.8 kkk service network restart #重啓網絡服務
如今開始運行腳本面試
sh ifconfig.sh
如下爲運行結果apache
Shutting down interface eth0: [ OK ] Shutting down loopback interface: [ OK ] Bringing up loopback interface: [ OK ] Bringing up interface eth0: [ OK ] [root@localhost ~]# ifconfig -a eth0 Link encap:Ethernet HWaddr 00:0C:29:DC:E5:57 inet addr:192.168.80.10 Bcast:192.168.80.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:581 errors:0 dropped:0 overruns:0 frame:0 TX packets:507 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:56471 (55.1 KiB) TX bytes:67799 (66.2 KiB)
查看系統版本vim
[root@localhost ~]# cat /etc/redhat-release CentOS release 6.6 (Final) [root@localhost ~]#
查看系統內核centos
[root@localhost ~]# uname -r 2.6.32-504.el6.x86_64
查看系統位數數組
[root@localhost ~]# uname -m
x86_64
不要使用root帳戶登陸,咱們須要建立一個普通用戶,使用這個用戶遠程登陸系統而後在切換到root用戶進行操做,同時禁止root帳戶遠程登陸,這樣可使系統的安全性增長緩存
查看當前用戶
[root@localhost ~]# whoami
root
建立用戶
[root@localhost ~]# useradd lenovo #建立一個用戶 [root@localhost ~]# id lenovo #查看建立的用戶 uid=500(lenovo) gid=500(lenovo) groups=500(lenovo)
設置用戶密碼
方法1:方法2:
[root@localhost ~]# passwd lenovo 設置lenovo用戶的密碼 Changing password for user lenovo. New password: Retype new password: passwd: all authentication tokens updated successfully. #口令:全部認證令牌更新成功。
先將原始的CentOS-Base.repo文件保存下載更更改其名稱
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
下面開始下載阿里雲的YUM源,編輯並建立CentOS-Base.repo文件
wget -O /etc/yum.repos.d/CentOS-Base.repo http://7xqer8.com1.z0.glb.clouddn.com/Centos-6.repo
先清除YUM的緩存
yum clean all Loaded plugins: fastestmirror, security
Cleaning up Everything
更新YUM的緩存文件
yum makecache
如下爲更新YUM文件緩存成功的提示信息
base | 3.7 kB 00:00 base/group_gz | 219 kB 00:00 base/filelists_db | 6.3 MB 00:25 base/primary_db | 4.6 MB 00:10 base/other_db | 2.8 MB 00:07 extras | 3.4 kB 00:00 extras/filelists_db | 37 kB 00:00 extras/prestodelta | 703 B 00:00 extras/primary_db | 34 kB 00:00 extras/other_db | 48 kB 00:00 updates | 3.4 kB 00:00 updates/filelists_db | 2.7 MB 00:09 updates/prestodelta | 324 kB 00:00 updates/primary_db | 3.3 MB 00:07 updates/other_db | 39 MB 01:35 Metadata Cache Created [root@localhost yum.repos.d]# yum repolist Loaded plugins: fastestmirror, security Loading mirror speeds from cached hostfile * base: mirrors.aliyun.com * extras: mirrors.aliyun.com * updates: mirrors.aliyun.com repo id repo name status base CentOS-6 - Base - mirrors.aliyun.com 6,575 extras CentOS-6 - Extras - mirrors.aliyun.com 50 updates CentOS-6 - Updates - mirrors.aliyun.com 1,047 repolist: 7,672
查看系統必備的四個YUM包組
[root@localhost ~]# yum grouplist
Installed Groups:
Base Compatibility libraries Debugging Tools Development tools
如今升級系統經常使用的軟件包(推薦)(升級全部包,不改變軟件設置和系統設置,系統版本升級,內核不改變)
yum -y upgrade
升級全部包,改變軟件設置和系統設置,系統版本內核都升級
yum -y update
最後的顯示信息
xz.x86_64 0:4.999.9-0.5.beta.20091007git.el6 xz-libs.x86_64 0:4.999.9-0.5.beta.20091007git.el6 xz-lzma-compat.x86_64 0:4.999.9-0.5.beta.20091007git.el6 yum.noarch 0:3.2.29-69.el6.centos yum-plugin-fastestmirror.noarch 0:1.1.30-30.el6 yum-plugin-security.noarch 0:1.1.30-30.el6 yum-utils.noarch 0:1.1.30-30.el6 zip.x86_64 0:3.0-1.el6_7.1 Complete!
查看所安裝的包組
yum grouplist
安裝包組
yum groupinstall "包組名稱"
yum -y install lrzsz sysstat wget
lrzsz #上傳下載命令的軟件包(rz)
sysstat #系統的調優工具
wget #下載文件的工具
檢查軟件是否安裝完成
[root@localhost ~]# rpm -qa lrzsz sysstat wget sysstat-9.0.4-27.el6.x86_64 wget-1.12-5.el6_6.1.x86_64 lrzsz-0.12.20-27.1.el6.x86_64
for service in `chkconfig --list|grep 3:on|awk '{print $1}'`;do chkconfig --level 3 $service off;done #關閉全部開機自動啓動的默認系統服務 for service in crond network rsyslog sshd;do chkconfig --level 3 $service on;done #開啓指定的開機自動啓動的默認系統服務
檢查開啓啓動服務是否已經優化
[root@localhost ~]# chkconfig --list|grep 3:on crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off #定時任務服務 network 0:off 1:off 2:on 3:on 4:on 5:on 6:off #網絡服務 rsyslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off #系統日誌記錄服軟件務 sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off #遠程鏈接服務
固然咱們也可使用圖形化的方式關閉開機啓動服務
ntsysv
編輯selinux的配置文件,永久關閉selinux
vi /etc/selinux/config # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled
重啓生效
爲了避免重啓,咱們能夠臨時關閉selinux
setenforce 0
查看當前SElinux狀態
[root@localhost ~]# getenforce
Permissive #表示關閉狀態
固然咱們也可使用sed命令快速的對selinux進行設置
sed -i "s#SELINUX=enforcing#SELINUX=disabled#" /etc/selinux/config setenforce 0
Linux系統有7個運行級別(runlevel)
運行級別0:系統停機狀態,系統默認運行級別不能設爲0,不然不能正常啓動
運行級別1:單用戶工做狀態,root權限,用於系統維護,禁止遠程登錄
運行級別2:多用戶狀態(沒有NFS)
運行級別3:徹底的多用戶狀態(有NFS),登錄後進入控制檯命令行模式
運行級別4:系統未使用,保留
運行級別5:X11控制檯,登錄後進入圖形GUI模式
運行級別6:系統正常關閉並重啓,默認運行級別不能設爲6,不然不能正常啓動
經常使用級別 3 開機進入命令行
經常使用級別 5 開機進入桌面
設置默認加載的運行級別
[root@localhost ~]# vi /etc/inittab # Default runlevel. The runlevels used are: # 0 - halt (Do NOT set initdefault to this) # 1 - Single user mode # 2 - Multiuser, without NFS (The same as 3, if you do not have networking) # 3 - Full multiuser mode # 4 - unused # 5 - X11 # 6 - reboot (Do NOT set initdefault to this) # id:3:initdefault:
備份一份原始的ssh配置文件
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
####sshd-youhua################################ #Port 22 #默認端口參數 #PermitRootLogin yes #root用戶黑客都知道 禁止他遠程登陸 設置爲no #PermitEmptyPasswords no #禁止空密碼登陸 #UseDNS yes #使用DNS登陸 參數爲no則是不使用 ####sshd-youhua################################
腳本快速設置:
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak #將原始的配置文件保存一份,防止配置文件修改錯誤 sed -i 's%#Port 22%Port50000%' /etc/ssh/sshd_config #修改默認端口參數 sed -i 's%#PermitRootLogin yes%PermitRootLogin no%' /etc/ssh/sshd_config #root用戶黑客都知道 禁止他遠程登陸 設置爲no #sed -i 's%#PermitEmptyPasswords no%PermitEmptyPasswords no%' /etc/ssh/sshd_config #禁止空密碼登陸 sed -i 's%#UseDNS yes%UseDNS no%' /etc/ssh/sshd_config #使用DNS登陸 參數爲no則是不使用 /etc/init.d/sshd reload
查看端口:
[root@localhost ~]# netstat -lntup | grep ssh tcp 0 0 0.0.0.0:50000 0.0.0.0:* LISTEN 1995/sshd tcp 0 0 :::50000 :::* LISTEN 1995/sshd
經過端口查服務
[root@localhost ~]# lsof -i :50000 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME sshd 1936 root 3r IPv4 15224 0t0 TCP 192.168.80.200:50000->192.168.80.1:51399 (ESTABLISHED) sshd 1940 lenovo 3u IPv4 15224 0t0 TCP 192.168.80.200:50000->192.168.80.1:51399 (ESTABLISHED) sshd 1995 root 3u IPv4 15470 0t0 TCP *:50000 (LISTEN) sshd 1995 root 4u IPv6 15472 0t0 TCP *:50000 (LISTEN)
提示:若是系統提示沒有lsof這個命令的話請使用yum -y install lsof 安裝這個命令
設置中國時區使用亞洲/上海(+8)
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
安裝時間工具
yum -y install ntpdate
手動同步時間 Centos5.0 /sbin/ntpdate time.nist.gov Centos6.0 /usr/sbin/ntpdate time.nist.gov date 查看當前時間
設置系統每5分鐘更新一個時間 Centos5.0 echo '*/5**** /sbin/ntpdate time.nist.gov >/dev/null 2>&1' >>/var/spoll/cron/root Centos6.0 echo '*/5**** /usr/sbin/ntpdate time.nist.gov >/dev/null 2>&1' >>/var/spoll/cron/root
ulimit -n 查看文件描述符的數量(默認爲1024)
[root@localhost sbin]# ulimit -n 1024
備份原始配置文件
cp /etc/security/limits.conf /etc/security/limits.conf.bak 備份原始配置文件
修改文件描述符爲65535
[root@localhost sbin]# echo '* - nofile 65535' >>/etc/security/limits.conf
檢查修改
[root@localhost sbin]# ulimit -n 1024 [root@localhost sbin]# echo '* - nofile 65535' >>/etc/security/limits.conf [root@localhost sbin]# tail -l /etc/security/limits.conf #* soft core 0 #* hard rss 10000 #@student hard nproc 20 #@faculty soft nproc 20 #@faculty hard nproc 50 #ftp hard nproc 0 #@student - maxlogins 4 # End of file * - nofile 65535
文件描述符修改完成
[root@localhost ~]# ulimit -n 65535
說明:本優化適合apache nginx squid多種web應用的運用,特殊業務需作調整
優化參數:
vi /etc/sysctl.conf net.ipv4.tcp_fin_timeout=2 net.ipv4.tcp_tw_reuse=1 net.ipv4.tcp_tw_recycle=1 net.ipv4.tcp_syncookies=1 net.ipv4.tcp_keepalive_time=600 net.ipv4.tcp_max_syn_backlog=16384 net.ipv4.ip_local_port_range=4000 65000 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 #如下參數是對iptables防火牆的優化,防火牆不開會提示,能夠忽略不理 net.ipv4.ip_conntrack_max=25000000 net.ipv4.netfilter.ip_conntrack_max=25000000 net.ipv4.netfilter.ip_conntrack_tcp_timeout_established=180 net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait=120 net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait=60 net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait=120
參數生效命令
sysctl -p
cat /etc/issue
> /etc/issue #清除屏幕輸出的狀態
cat /etc/redhat-release #查看系統版本 uname -r #查看系統內核 uname -m #查看系統爲多少位的操做系統 1 不要使用root用戶登陸,建立普通用戶 whoami #查看當前用戶 useradd lenovo #建立用戶 id lenovo #查看建立的用戶 passwd lenovo #設置用戶密碼(1) echo "123456"|passwd --stdin lenovo #使用命令給lenovo設置密碼 su - lenovo #切換用戶命令,必定要加- 目的是把環境變量調過去 groupadd 快速腳本: useradd lenovo #建立普通用戶lenovo echo "123456"|passwd --stdin lenovo #給lenovo用戶設置密碼 2 配置公網YUM源(將系統中默認的國外的YUM源修改成國內的YUM源) 將Centos的yum源更換爲國內的阿里雲源 阿里雲Linux安裝軟件鏡像源 阿里雲是最近新出的一個鏡像源。得益與阿里雲的高速發展,這麼大的需求,確定會推出本身的鏡像源。 阿里雲Linux安裝鏡像源地址:http://mirrors.aliyun.com/ CentOS系統更換軟件安裝源 第一步:備份你的原鏡像文件,以避免出錯後能夠恢復。 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup mv rhel-source.repo rhel-source.repo.backup.1 第二步:下載新的CentOS-Base.repo 到/etc/yum.repos.d/ CentOS 5 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.repo CentOS 6 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo 第三步:運行yum makecache生成緩存 yum clean all yum makecache cd /etc/yum.repos.d/ #YUM源文件的存放位置 mv rhel-source.repo rhel-source.repo.bak #修改原始YUM源文件名稱。 rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY* #導入key yum upgrade #將系統更新到最新(至關於打補丁的功能) 結論: yum -y update 升級全部包,改變軟件設置和系統設置,系統版本內核都升級 yum -y upgrade 升級全部包,不改變軟件設置和系統設置,系統版本升級,內核不改變 3 安裝必要的軟件包 lrzsz #上傳下載命令的軟件包(rz) sysstat #系統的調優工具 yum -y install lrzsz sysstat rpm -qa lrzsz sysstat #檢查軟件是否安裝 4 LANG=en #將字符集改爲英文 yum grouplist #查看所安裝的包組 yum groupinstall "包組名稱" #安裝包組 5 關閉SELinux vi /etc/selinux/config selinux=disabled #禁用 sed -i "s#SELINUX=enforcing#SELINUX=disabled#" /etc/selinux/config 重啓生效 getenforce #查看當前SElinux狀態 setenforce 0 #禁用selinux 不須要重啓就能生效 6 runlevel #查看系統運行級別 經常使用級別 3 開機進入命令行 經常使用級別 5 開機進入桌面 vi /etc/inittab id:3:initdefault: #設置默認加載的運行級別 7 精簡開機系統啓動服務 交互式設置命令:setup LANG=en #將字符集更改成英文狀態 ntsysv #圖形化管理開機啓動服務 剛剛安裝的操做系統只須要保留四個服務開機自動啓動 crond #定時任務服務 network #網絡服務 sshd #遠程鏈接服務 syslog #系統的日誌記錄軟件服務 chkconfig --list|grep 3:on|cut -d " " -f1 使用腳本快速關閉開機服務,保留四個服務 LANG=en for service in `chkconfig --list|grep 3:on|awk '{print $1}'`;do chkconfig --level 3 $service off;done #關閉全部系統中開機服務運行級別爲3的系統服務 for service in crond network syslog sshd;do chkconfig --level 3 $service on;done #開啓指定的系統服務 chkconfig --list|grep 3:on #查看全部系統級別爲3的開機啓動服務 8 更改ssh登陸配置 cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak #備份一份原始的ssh配置文件 vi /etc/ssh/sshd_config ####sshd-youhua################################ #Port 22 #默認端口參數 #PermitRootLogin yes #root用戶黑客都知道 禁止他遠程登陸 設置爲no #PermitEmptyPasswords no #禁止空密碼登陸 #UseDNS yes #使用DNS登陸 參數爲no則是不使用 ####sshd-youhua################################ 重啓服務生效 service sshd restart 臨時關閉防火牆進行鏈接 service iptables stop vimdiff 檢查兩個文件的區別 腳本快速設置: echo "#sshConfig 修改ssh默認登陸端口,禁止root登陸#" cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak #將原始的配置文件保存一份,防止配置文件修改錯誤 sed -i 's%#Port 22%Port 50000%' /etc/ssh/sshd_config #修改默認端口參數 sed -i 's%#PermitRootLogin yes%PermitRootLogin no%' /etc/ssh/sshd_config #root用戶黑客都知道 禁止他遠程登陸 設置爲no sed -i 's%#UseDNS yes%UseDNS no%' /etc/ssh/sshd_config #使用DNS登陸 參數爲no則是不使用 /etc/init.d/sshd restart #sed -i 's%#PermitEmptyPasswords no%PermitEmptyPasswords no%' /etc/ssh/sshd_config #禁止空密碼登陸 查看端口: netstat -lntup | grep ssh 經過端口查服務 lsof -i :22 9 sudo權限管理 visudo或者vi /etc/sudoers(首選visudo) 備份原始的配置文件 cp /etc/sudoers /etc/sudoers.bak sudo配置文件修改完成之後保存自動生效 root ALL=(ALL) ALL 用戶 受權機器=(受權那個角色的權利,若是爲空則擁有root權限) 所管理的權限 %用戶組 受權機器=(受權那個角色的權利,若是爲空則擁有root權限) 所管理的權限 #若是受權的是用戶組 必定要在前面加上%號 lenovo ALL=(ALL) /usr/sbin/useradd /usr/sbin/userdel #受權用戶具備建立刪除用戶的權限 lenovo ALL=(ALL) ALL #受權lenovo的權限至關於root權限 lenovo ALL=(ALL) NOPASSWORD:ALL #受權lenovo的權限至關於root權限 切換到root不須要密碼 sudo su - 能夠切換到root(su - 角色切換的過程,不安全,能夠修改root密碼) sudo -l 查詢用戶當前權限 使用wq! 強制保存 從新登陸用戶生效 普通用戶若是想使用root權限才能作的事情,必須在命令的前面加上sudo命令 使用 sudo /usr/sbin/useradd kkk 命令執行添加用戶 ALL=/usr/sbin/useradd #只容許添加用戶 ALL=/usr/sbin/userdel #刪除用戶 which useradd #查看命令所在路徑 普通用戶與root用戶環境變量的差異 (1)5.0系統沒法使用ifconfig命令(6.0能夠) (2)6.0普通用戶與root用戶環境變量的差異 就是用戶自己目錄的差異 /root /home/lenovo (3)5.0 區別 普通用戶解決PATH變量路徑問題 vi .bash_profile PATH=$PATH:$HOME/bin:/sbin . .bash_profile #PATH路徑生效方法1 source .bash_profile #PATH路徑生效方法2 如何尋找命令的全路徑 which useradd 10 優化調整適合的字符集設置 臨時設置: LANG="ZH_CN.GB18030" 經常使用中文字符集 永久設置: cat /etc/sysconfig/i18n #查看當前系統字符集 cp /etc/sysconfig/i18n /etc/sysconfig/i18n.bak #先備份原始配置文件 echo 'LANG="ZH_CN.GB18030"' >/etc/sysconfig/i18n #覆蓋英文字符集 cat /etc/sysconfig/i18n source /etc/sysconfig/i18n #讓配置生效 echo $LANG #若是顯示的是你所設置的,那麼就表示已經生效 11 5和6的區別 CentOS6 至少1G內存 默認網站時不啓動的 YUM源有5,6數字字樣的區別 DNS客戶端配置的區別 12 服務器的時間同步 which ntpdate ntpdatel路徑/usr/sbin/ntpdate 手動同步 在設置中國時區使用亞洲/上海(+8) cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 手動同步時間 Centos5.0 /sbin/ntpdate time.nist.gov Centos6.0 /usr/sbin/ntpdate time.nist.gov date 查看當前時間 自動同步 設置系統每5分鐘更新一個時間 Centos5.0 echo '*/5**** /sbin/ntpdate time.nist.gov >/dev/null 2>&1' >>/var/spoll/cron/root Centos6.0 echo '*/5**** /usr/sbin/ntpdate time.nist.gov >/dev/null 2>&1' >>/var/spoll/cron/root 13 加大文件描述符 ulimit -n 查看文件描述符的數量(默認爲1024) cp /etc/security/limits.conf /etc/security/limits.conf.bak 備份原始配置文件 echo '* - nofile 65535' >>/etc/security/limits.conf 修改文件描述符爲65535 tail -l /etc/security/limits.conf 檢查修改 從新登陸用戶配置生效 方法2: 提示:也有人把ulimit -SHn 65535 命令加入到/etc/rc/local,而後每次重啓生效 cat >>/etc/rc/local<<EOF #open files ulimit -HSn 65535 #stack size ulimit -s 65535 EOF 14 Linux服務器的內核參數優化 說明:本優化適合apache nginx squid多種web應用的運用,特殊業務需作調整 優化參數: vi /etc/sysctl.conf net.ipv4.tcp_fin_timeout=2 net.ipv4.tcp_tw_reuse=1 net.ipv4.tcp_tw_recycle=1 net.ipv4.tcp_syncookies=1 net.ipv4.tcp_keepalive_time=600 net.ipv4.tcp_max_syn_backlog=16384 net.ipv4.ip_local_port_range=4000 65000 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 #如下參數是對iptables防火牆的優化,防火牆不開會提示,能夠忽略不理 net.ipv4.ip_conntrack_max=25000000 net.ipv4.netfilter.ip_conntrack_max=25000000 net.ipv4.netfilter.ip_conntrack_tcp_timeout_established=180 net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait=120 net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait=60 net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait=120 參數生效命令:sysctl -p linux TIME_WAIT過多的解決方法 查看TCP狀態:netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' 查看SOCKET狀態:cat /proc/net/sockstat TIME_WAIT狀態的socket通常須要等到2msl時間後,socket纔會被回收。 修改(添加)系統內核參數:/etc/sysctl.conf #改系統默認的TIMEOUT時間 net.ipv4.tcp_fin_timeout=2 #啓重用,容許將TIME-WAIT sockets從新用於新的TCP鏈接 默認爲0表示關閉 net.ipv4.tcp_tw_reuse=1 #開啓TCP鏈接中TIME-WAIT sockets的快速回收 默認爲0 表示關閉 net.ipv4.tcp_tw_recycle=1 使新增參數生效:sysctl -p 本系列博文完整內容共5篇: 第一篇:詳解linux netstat輸出的網絡鏈接狀態信息 http://oldboy.blog.51cto.com/2561410/1184139 第二篇:庖丁解牛獲取鏈接狀態數的awk數組命令 http://oldboy.blog.51cto.com/blog/2561410/1184165 第三篇:awk數組命令經典生產實戰應用拓展 http://oldboy.blog.51cto.com/blog/2561410/1184177 第四篇:老男孩培訓第八節課前awk考試題案例(門戶面試題解答) http://oldboy.blog.51cto.com/2561410/1184206 第五篇:linux生產服務器有關網絡狀態的優化措施(告一段落) http://oldboy.blog.51cto.com/2561410/1184228 15 定時清理clientmqueue(郵件)目錄垃圾文件防止佔滿磁盤空間 提示:5.8默認有sendmail 6.4默認沒有 clientmqueue,sendmail郵件服務臨時存放位置 安裝sendmail yum -y install sendmail 文件路徑:/var/spool/clientmqueue 手動清理方法: find /var/spool/clientmqueue/ -type f |xargs rm -f 定時清理方法: mkdir -p /server/scripts #建立一個存放腳本的文件夾 vi /server/scripts/del #建立一個腳本文件 find /var/spool/clientmqueue/ -type f |xargs rm -f 咱們在定時任務裏面進行處理 crontab -e #del file by liwenxuan 00 00 * * 6 /bin/sh /server/scripts/del.sh >/dev/null 2>&1 #設置定時任務每週六零點對文件進行清理 16 鎖定關鍵文件防止黑客修改文件 chattr +i /etc/passwd 鎖定文件 chattr -i /etc/passwd 解鎖文件 chattr +i /etc/inittab chattr +i /etc/group chattr +i /etc/shadow chattr +i /etc/gshadow 處理以上內容後把chattr更名,這樣就安全多啦。 which chattr mv /usr/bin/chattr /usr/bin/oldboy lsattr /etc/passwd #查看鎖定文件的狀態 17 隱藏系統登陸時所輸出的版本狀態 cat /etc/issue > /etc/issue #清除屏幕輸出的狀態 更多的優化細節見: