CentOS-Minimal-6.4基本優化

 

快速部署腳本

#!/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地址

臨時配置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:
[root@localhost ~]# passwd lenovo      設置lenovo用戶的密碼 Changing password for user lenovo. New password: Retype new password: passwd: all authentication tokens updated successfully.    #口令:全部認證令牌更新成功。
 方法2:
  使用命令給lenovo設置密碼
 echo "123456"|passwd --stdin lenovo

 

 

配置阿里雲YUM源

先將原始的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的配置文件,永久關閉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登陸配置

備份一份原始的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

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

 

隱藏系統登陸時所輸出的版本狀態

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    #清除屏幕輸出的狀態
    
    
更多的優化細節見:
學習筆記
相關文章
相關標籤/搜索