文轩运维博客(李文轩)

一个愿意为理想奋斗终生的人! 技术交流QQ:838997384

  :: 首页 :: 博问 :: 闪存 :: :: 联系 :: 订阅 订阅 :: 管理 ::

 

快速部署脚本

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

sudo ifconfig eth0 192.168.80.10

永久配置IP地址

 编辑创建脚本文件

vi ifconfig.sh

以下内容为配置IP地址的脚本文件

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

以下为运行结果

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)

系统版本

查看系统版本

[root@localhost ~]# cat /etc/redhat-release
CentOS release 6.6 (Final)
[root@localhost ~]# 

查看系统内核

[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    #清除屏幕输出的状态
    
    
更多的优化细节见:
学习笔记

 

posted on 2016-01-23 14:06  Chris_李文轩  阅读(509)  评论(0编辑  收藏  举报