首页 > 代码库 > linux中级架构初章一

linux中级架构初章一

1.基础命令是重中之重,有且不限于150个企业级常用命令。

2.shell编程是基础,是你在不用任何其他语言的前提下,必会的脚本语言。shell可以至少要会三个项目,mysql自动备份脚本,自动安装LAMP架构。自动监控服务器性能脚本。拓展:自动搭建zabbix监控。
3. mysql是必会技能,需要知道增删改查,会搭建读写分离,及高可用。

4.简单了解调优技巧,调优是月薪过10K必备

5.apachenginx两个服务+简单调优+了解PV UV,网络的概念


从最初的安装到完成整体架构。


一、系统安装

  1. 系统分区
    /boot ext4 200M  选择主分区(Force to be a primary partition,存放内核引导程序的分区
    /swap 内存1-2倍  选择主分区(Force to be a primary partition 没有挂载点
    /    ext4     选择主分区(Force to be a primary partition

  2. 选择安装类型  在此选择自定义安装包组


  3. 安装

二、CRT连接

 

三、创建admin账户

   在日常的运维中,尽量避免使用root用户,给相应的管理人员创建管理账户,在这里创建admin

为了方便管理,给admin设置sudo权限

 

man sudo

visudo vi /etc/sudoers

 

四、系统优化

 

1.  关闭iptables       /etc/init.d/iptables stop


2.  关闭seliunx          sed -i‘s#SELINUX=enforcing#SELINUX=disabled#g‘ 

       gentenforce(查看状态)  setenforce 0(临时生效)


3.  grep ‘initdefault‘ /etc/inittab      查看启动模式(级别0-6


4.  关闭开机自启动的服务只保留crondnetwork rsyslog sshd这四个服务


for n in chkconfig --list|grep 3:on|awk ‘{print $1}‘ ; do chkconfig --level 3$n off ; done 关闭所有服务开机自动启动
for n in crond network rsyslog sshd;do chkconfig $n on;done  crond network rsyslog sshd这四个服务设置开机启动


5.  优化ssh登录

sed -i ‘s/#Port 22/Port 52113/g‘ /etc/ssh/sshd_config
sed -i ‘s/#PermitRootLogin yes/PermitRootLogin yes/g‘ /etc/ssh/sshd_config
sed -i ‘s/#PermitEmptyPasswords no/PermitEmptyPasswords no/g‘/etc/ssh/sshd_config
sed -i ‘s/#UseDNS yes/UseDNS no/g‘ /etc/ssh/sshd_config
cat /etc/ssh/sshd_config|egrep "UseDNS no|PermitEmptyPasswords no|PermitRootLogin no|Port52113"

或者vi编辑sshd_config直接在尾部拷贝如下几行

Port52113
PermitRootLogin no
PermitEmptyPasswords no
UseDNS no


6.  /etc/profile文件设置开机启动
echo "alias grep=‘grep --color=auto‘" >>/etc/profile  #设置别名开机生效
source /etc/profile #使之不重启生效
sudo echo "PATH=/scripts/:$PATH" >>/etc/profile    #设置环境变量
凡是在环境变量里面的路径都可以直接敲出来执行(路径里的文件要有执行权限)
普通用户生效~/.bash_profile或者~/.bashrc


7.  修改字符集

[root@nginx-proxy1 ~]# cat /etc/sysconfig/i18n 
#LANG="en_US.UTF-8"
LANG="zh_CN.GB18030"
SYSFONT="latarcyrheb-sun16"
source /etc/sysconfig/i18n  #使之生效

学习linux尽量避免中文字符,最好还是使用en_US.UTF-8字符集


8. 系统时间同步

ntp时间同步服务

/usr/sbin/ntpdate time.nist.gov
echo ‘#time sync by dong at 2017-02-16‘ >>/var/spool/cron/root
echo ‘*/5 * * * * /usr/sbin/ntpdate time.nist.gov >/dev/null 2>&1‘ >>/var/spool/cron/root
crontab -l

9.加大服务器文件描述符


ulimit -n 查看默认的 1024

echo ‘*  -  nofile  65535‘ >>/etc/security/limits.conf

设置开机自动修改

10. 调整内核参数文件/etc/sysctl.conf

net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_keepalive_time = 600
net.ipv4.tcp_keepalive_probes = 3
net.ipv4.tcp_keepalive_intvl =15
net.ipv4.tcp_retries2 = 5
net.ipv4.tcp_fin_timeout = 2
net.ipv4.tcp_max_tw_buckets = 36000
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_max_orphans = 32768
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.tcp_wmem = 8192 131072 16777216
net.ipv4.tcp_rmem = 32768 131072 16777216
net.ipv4.tcp_mem = 786432 1048576 1572864
net.ipv4.ip_local_port_range = 1024 65000
net.ipv4.ip_conntrack_max = 65536
net.ipv4.netfilter.ip_conntrack_max=65536
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established=180
net.core.somaxconn = 16384
net.core.netdev_max_backlog = 16384

11. 脚本定时清理clientmqueue目录垃圾文件防止占满磁盘空间

echo "find /var/spool/clientmqueue/ -type f|xargs rm -f">/scripts/del_sys_file.sh
echo "00 00 * * * /bin/sh /scripts/del_sys_file.sh>/dev/null 2>&1" >>/


12. 修改登录系统提示信息


>/etc/issue   or  cat /dev/null >/etc/issue


13.   锁定关键系统文件

chattr +i /etc/passwd      文件加锁

chattr -i /etc/passwd       文件解锁




重要的命令 netstat lntup或者an l列表n 数字显示 t tcp连接 u udp协议 p 进程名)

[--tcp|-t] [--udp|-u] [--listening|-l] [--all|-a]  [--numeric|-n]  [--program|-p]

lsof -i :52113 查看端口



本文出自 “董利强” 博客,请务必保留此出处http://6207422.blog.51cto.com/6197422/1898534

linux中级架构初章一