首页 > 代码库 > linux中级架构初章一
linux中级架构初章一
1.基础命令是重中之重,有且不限于150个企业级常用命令。
2.shell编程是基础,是你在不用任何其他语言的前提下,必会的脚本语言。shell可以至少要会三个项目,mysql自动备份脚本,自动安装LAMP架构。自动监控服务器性能脚本。拓展:自动搭建zabbix监控。
3. mysql是必会技能,需要知道增删改查,会搭建读写分离,及高可用。
4.简单了解调优技巧,调优是月薪过10K必备
5.apache,nginx两个服务+简单调优+了解PV ,UV,网络的概念
从最初的安装到完成整体架构。
一、系统安装
系统分区
/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)选择安装类型 在此选择自定义安装包组
安装
二、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中级架构初章一