linux 基础优化回顾小结:

1. 不用root,添加普通用户,通过sudo授权管理


useradd rainlog

passwd rainlog 123456

visudo 或者 vi /etc/sudoers

yy复制当前行 p粘贴
root    ALL=(ALL)       ALL
rainlog  ALL=(ALL)       /usr/sbin/useradd  /usr/sbin/userdel

保存后,用普通用户可以创建用户(sudo useradd kkk)

---------------------------------------------------------------
root    ALL=(ALL)       ALL
rainlog  ALL=(ALL)       NOPASSWD:ALL
sudo su -     不需要输入root密码就登录root



2. 更改默认的远程连接SSH服务端口及禁止root用户远程连接

vi /etc/ssh/sshd.config

(

远程连接端口  sshd_config文件修改  端口  52113
PermitRootLogin no  不让root通过ssh 登录,本机可以登录
UseDNS no
PermitEmptyPasswords no
................
:set nu  显示行号
/etc/init.d/sshd restar  重启sshd服务

/etc/init.d/iptables stop  连不上临时关闭防火墙

  )



3. 定时自动更新服务器时间

/usr/sbin/ntpdate time.nist.gov  临时执行时间更新

定时任务
echo '#time sync by oldboy at 2010-2-1'>>/var/spool/cron/root
echo '*/5 * * * * /usr/sbin/ntpdate time.nist.gov >/dev/null2>&1'>>/var/spool/cron/root   每五分钟执行一次
crontab -l

4. 配置yum更新源,从国内更新源下载安装rpm包


更新准备工作:  cd /etc/yum.repos.d/

                cp CentOS-Base.repo CentOS-Base.repo.ori
        wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
        mv CentOS6-Base-163.repo CentOS-Base.repo

5.关闭selinux及iptables(iptables 工作场景如果有wan ip 一般要打开,高并发除外)

sed -i s#SELINUX=enforcing#SELINUX=disabled#g /etc/selinux/config  关闭selinux警告

getenforce   查看selinux的状态
setenforce 0 临时关闭改成permissive

我们还可以通过编辑文件,然后重启让它关闭生效。

vi /etc/sysconfig/selinux

把里边的一行改为

SELINUX=disabled

改了之后保存,然后重启就可以了。

6.调整文件描述符的数量,进程及文件的打开都会消耗文件描述符

ulimit -n  查看文件描述符
ulimit -HSn 65535 加大文件描述符(临时)
echo '*               -    nofile            65535'>>/etc/security/limits.conf(永久)

7. 定时自动清理/var/spool/clientmquene/目录垃圾文件,防止inodes节点占满(c6.4默认没有

sendmail,可以不配置)

解决方法:在cron的自动执行语句后加上> /dev/null 2>&1
例:
4 3 * * * /usr/bin/w > /dev/null 2>&1
这样就OK拉,就不会写到那个目录下了....

在这里说一点,/var/spool/clientmqueue目录文件太多,rm -rf *时候会提示:

“-bash: /bin/rm: Argument list too long“..
意思是参数太长,rm 干不了。
可以用ls | xargs rm -f这个命令将/var/spool/clientmqueue目录下所有文件删除。

OK。清理完毕~



8. 精简开机自动启动服务(crond,rsyslog(5.8 syslog),network,sshd)

chkconfig --list|grep "3:on"  查看软件命令行(3)启动的
for rainlog in ` chkconfig --list|grep "3:on"|awk '{print $1}'`;do chkconfig --level 3

$rainlog off;done  关闭所有启动项
for rainlog in crond sshd network rsyslog;do chkconfig --level 3 $rainlog on;done 这四项开启
或者用一条命令
for rainlog in `chkconfig --list|grep "3:on"|awk '{print $1}'|grep -vE "crond|network|

rsyslog|sshd"`;do chkconfig --level 3 $rainlog off;done

9. linux内核参数优化/etc/sysctl.conf,执行sysctl -p生效

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.ip_local_port_range = 4000 65000
net.ipv4.tcp_max_syn_backlog = 16384
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
将上面的内核参数值加入/etc/sysctl.conf文件中,然后执行如下命令使之生效:sysctl -p

10. 更改字符集,支持中文,但建议还是用英文字符集,防止乱码问题,不要使用中文

中文显示
vi /etc/sysconfig/i18n
LANG="zh_CN.GB18030"
source /ect/sysconfig/i18n
查看语言 echo $LANG

11. 锁定关键系统文件

锁定关键文件
chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab
chattr -i 解锁
mv /usr/bin/chattr /usr/bin/test改名
lsattr 显示chattr命令设置的文件属性


12. 清空/etc/issue,去除系统及内核版本登录前的屏幕显示

清空版本号
cat /etc/issue
>/etc/issue  或者 cat /dev/null >/etc/issue