您的位置:首页 > 运维架构 > Linux

CentOS-Minimal-6.4基本优化

2016-01-23 14:06 387 查看

快速部署脚本

#!/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 #清除屏幕输出的状态

更多的优化细节见:


学习笔记
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: