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