初级运维-系统优化-7
Linux系统优化完全指南本文档涵盖CentOS/RHEL 7.x系统的常用优化配置适用于初级运维工程师目录编辑器技巧系统命令精讲系统信息查看时间同步管理安全服务配置YUM仓库优化网络与连接优化系统性能优化常用软件安装一、编辑器技巧1.1 Vim批量注释操作步骤1. 按 Ctrl v进入可视块模式2. 使用方向键↑↓选择要注释的行3. 按 Shift i 进入插入模式4. 输入注释符号如#5. 按 Esc 两次完成批量注释批量取消注释1. 按 Ctrl v进入可视块模式2. 选中要删除的注释符号3. 按 d 删除提示vi 不支持此功能必须使用 vim二、系统命令精讲2.1 less - 分页查看推荐less[选项]文件名选项/操作说明-N显示行号空格/f向下翻页b向上翻页g跳转到首行G跳转到末尾/关键字向下搜索?关键字向上搜索n下一个匹配项N上一个匹配项q退出特点适合查看大文件日志文件不会一次性加载整个文件到内存支持搜索和前后翻页2.2 more - 简单分页查看more文件名特点只能向下翻页空格键查看完毕自动退出功能较简单不推荐使用2.3 wc - 文本统计wc[选项]文件名选项说明-l统计行数line-w统计单词数word-c统计字节数char-L显示最长行的长度实用示例# 统计文件行数wc-l/etc/passwd# 统计当前目录下文件数量ls|wc-l# 统计代码行数排除空行和注释grep-v^#file.txt|grep-v^$|wc-l2.4 sort - 文本排序sort[选项]文件名选项说明默认按第一列字典序升序-n按数字大小排序-r逆序排序reverse-k N按第N列排序-t指定分隔符默认空格/Tab-u去重unique实用示例# 按数字大小排序sort-nfile.txt# 按第2列数字降序排序sort-t:-k2-rn/etc/passwd# 先按第1列再按第3列排序sort-k1,1 -k3,3n file.txt2.5 uniq - 去重统计uniq[选项]文件名⚠️注意uniq只能去除相邻的重复行通常需要先sort选项说明-c统计重复次数count-d仅显示重复的行-u仅显示不重复的行-i忽略大小写经典组合用法# 统计IP访问次数取前10cataccess.log|awk{print $1}|sort|uniq-c|sort-rn|head-10# 统计文件重复行sortfile.txt|uniq-d2.6 xargs - 参数传递command1|xargs[选项]command2选项说明-n N每行显示N个参数-d指定分隔符-I {}占位符替换-P N并行处理N个进程实用示例# 查找并删除文件find.-name*.log|xargsrm-f# 批量复制ls*.txt|xargs-I{}cp{}/backup/{}# 并行处理4个进程caturls.txt|xargs-P4-I{}wget{}# 处理带空格的文件名find.-name*.txt-print0|xargs-0rm三、系统信息查看3.1 查看系统版本# 方法1查看发行版信息CentOS/RHELcat/etc/redhat-release# 方法2详细系统信息hostnamectl# 方法3通用方法cat/etc/os-release3.2 查看内核版本# 显示所有信息uname-a# 仅显示内核版本uname-r# 显示主机名uname-n# 显示操作系统uname-o内核版本说明系统版本默认内核版本CentOS 6.x2.6.32CentOS 7.x3.10.0CentOS 8.x4.18.0RHEL 8.x4.18.0查看内核详细信息# 查看已安装的内核rpm-qa|grepkernel# 查看当前运行内核uname-r3.3 查看硬件信息# CPU信息cat/proc/cpuinfo lscpu# 内存信息cat/proc/meminfofree-h# 磁盘信息lsblkfdisk-l# 系统负载uptimecat/proc/loadavg四、时间同步管理4.1 时间相关概念时间类型说明查看命令系统时间操作系统时间date硬件时间BIOS/RTC时间hwclock或clock4.2 时间查看与设置# 查看系统时间date# 格式化输出date%Y-%m-%d %H:%M:%S# 2025-10-16 21:32:16date%F-%H-%M-%S# 2025-10-16-21-32-16# 修改系统时间临时date-s2025-10-16 21:30:00# 查看硬件时间hwclock# 或clock4.3 NTP时间同步安装NTP客户端# 安装ntpdateyuminstall-yntpdate# 或使用chronyCentOS 7推荐yuminstall-ychrony使用ntpdate同步临时# 同步阿里云NTP服务器ntpdate ntp1.aliyun.com# 常用NTP服务器ntp1.aliyun.com# 阿里云time1.cloud.tencent.com# 腾讯云cn.pool.ntp.org# 国际NTP池使用chrony同步推荐# 启动chrony服务systemctl start chronyd systemctlenablechronyd# 查看同步状态chronyc sources chronyc tracking同步硬件时间# 将系统时间写入硬件时间hwclock--systohc# 或clock-w# 将硬件时间写入系统时间hwclock--hctosys配置定时同步# 添加到crontabecho0 */6 * * * /usr/sbin/ntpdate ntp1.aliyun.com /var/log/ntpdate.log 21|crontab五、安全服务配置5.1 SELinux配置SELinux简介作用强制访问控制MAC安全机制状态Enforcing强制、Permissive宽容、Disabled关闭配置文件/etc/selinux/configSELinux管理命令# 查看当前状态getenforce# 查看详细状态sestatus# 临时关闭转为Permissivesetenforce0# 临时开启转为Enforcingsetenforce1# 永久关闭需重启sed-is/SELINUXenforcing/SELINUXdisabled//etc/selinux/config生产环境建议场景建议生产服务器建议开启但需配置规则测试环境可以关闭高并发Web建议关闭减少性能开销金融/政府必须开启5.2 防火墙配置Firewalld vs Iptables特性FirewalldIptablesCentOS 7默认✅❌动态更新✅❌区域概念✅❌学习曲线较平缓较陡峭Firewalld基础操作# 查看状态systemctl status firewalld firewall-cmd--state# 启动/停止/重启systemctl start firewalld systemctl stop firewalld systemctl restart firewalld# 开机自启/禁用systemctlenablefirewalld systemctl disable firewalld# 查看默认区域firewall-cmd --get-default-zone# 查看已开放的端口firewall-cmd --list-ports# 开放端口临时firewall-cmd --add-port80/tcp# 开放端口永久firewall-cmd--permanent--add-port80/tcp firewall-cmd--reload# 开放服务firewall-cmd--permanent--add-servicehttp firewall-cmd--permanent--add-servicehttps# 移除端口firewall-cmd--permanent--remove-port8080/tcp防火墙启用建议建议开启防火墙的场景有公网IP的服务器云服务器ECS/CVMDMZ区域服务器对外提供服务的生产环境建议关闭防火墙的场景纯内网环境已部署硬件防火墙高并发场景需配合iptables优化内部测试环境关闭防火墙如需要# 临时关闭systemctl stop firewalld# 永久关闭systemctl disable firewalld# 确认状态systemctl status firewalld5.3 NetworkManager管理# 查看状态systemctl status NetworkManager# 关闭某些场景下建议关闭使用network服务systemctl stop NetworkManager systemctl disable NetworkManager# 使用传统network服务systemctl start network systemctlenablenetwork说明在服务器环境中通常建议关闭NetworkManager使用传统的network服务避免网络配置冲突。六、YUM仓库优化6.1 YUM基础概念YUMYellowdog Updater ModifiedRPM包管理器的前端工具仓库Repository软件包的存储位置元数据包含软件包依赖关系等信息6.2 查看当前仓库# 列出已启用的仓库yum repolist# 列出所有仓库包括禁用yum repolist all# 查看仓库详情yum repoinfo base6.3 更换为国内镜像源备份原有配置# 创建备份目录mkdir-p/etc/yum.repos.d/backup# 备份原有repo文件mv/etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/阿里云镜像源推荐# CentOS 7 Base源curl-o/etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo# 或者使用wgetwget-O/etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo其他国内镜像源镜像站URL阿里云https://mirrors.aliyun.com腾讯云https://mirrors.cloud.tencent.com清华大学https://mirrors.tuna.tsinghua.edu.cn中科大https://mirrors.ustc.edu.cn华为云https://mirrors.huaweicloud.com6.4 EPEL扩展仓库EPELExtra Packages for Enterprise Linux提供额外的软件包# 安装EPEL源阿里云wget-O/etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo# 或者yuminstall-yepel-release# 更新缓存yum clean all yum makecache6.5 YUM缓存管理# 清除缓存yum clean all# 生成缓存yum makecache# 查看缓存目录ls/var/cache/yum/6.6 YUM实用插件# 安装yum-utilsyuminstall-yyum-utils# 查看包信息yum info 包名# 搜索包yum search 关键字# 查看文件属于哪个包yum provides /usr/bin/命令# 下载RPM包不安装yumdownloader 包名# 只下载依赖yuminstall--downloadonly--downloaddir/path 包名七、网络与连接优化7.1 SSH连接优化服务端配置/etc/ssh/sshd_config# 备份原配置cp/etc/ssh/sshd_config /etc/ssh/sshd_config.bak# 优化配置cat/etc/ssh/sshd_configEOF # 禁用root登录生产环境必须 PermitRootLogin no # 使用密钥认证 PasswordAuthentication no PubkeyAuthentication yes # 修改默认端口建议 Port 2222 # 空闲超时时间秒 ClientAliveInterval 300 ClientAliveCountMax 2 # 禁用DNS解析加速连接 UseDNS no # 允许的最大认证尝试次数 MaxAuthTries 3 EOF# 重启SSH服务systemctl restart sshd客户端配置~/.ssh/config# 创建config文件mkdir-p~/.sshchmod700~/.sshcat~/.ssh/configEOF Host myserver HostName 192.168.1.100 Port 2222 User admin IdentityFile ~/.ssh/id_rsa ServerAliveInterval 60 ServerAliveCountMax 3 StrictHostKeyChecking no EOFchmod600~/.ssh/config7.2 字符集优化# 查看当前字符集localeecho$LANG# 临时修改exportLANGen_US.UTF-8# 永久修改# 方法1修改/etc/locale.confechoLANGen_US.UTF-8/etc/locale.conf# 方法2使用localectllocalectl set-localeLANGen_US.UTF-8# 安装中文支持如需要yuminstall-ykde-l10n-Chinese localedef-c-fUTF-8-izh_CN zh_CN.UTF-87.3 终端优化# 命令行提示符优化显示完整路径和时间echoexport PS1[\t][\u\h \W]\$ ~/.bashrc# 历史记录优化echoexport HISTSIZE10000~/.bashrcechoexport HISTTIMEFORMAT%Y-%m-%d %H:%M:%S ~/.bashrc# 别名设置echoalias llls -lh~/.bashrcechoalias grepgrep --colorauto~/.bashrcechoalias vivim~/.bashrcsource~/.bashrc八、系统性能优化8.1 文件描述符优化# 查看当前限制ulimit-n# 临时修改ulimit-n65535# 永久修改cat/etc/security/limits.confEOF * soft nofile 65535 * hard nofile 65535 * soft nproc 65535 * hard nproc 65535 EOF# 针对特定用户# username soft nofile 655358.2 内核参数优化# 编辑sysctl配置cat/etc/sysctl.confEOF # 网络优化 net.ipv4.tcp_max_tw_buckets 6000 net.ipv4.tcp_sack 1 net.ipv4.tcp_window_scaling 1 net.ipv4.tcp_rmem 4096 87380 4194304 net.ipv4.tcp_wmem 4096 16384 4194304 net.core.wmem_default 8388608 net.core.rmem_default 8388608 net.core.rmem_max 16777216 net.core.wmem_max 16777216 net.core.netdev_max_backlog 65536 net.ipv4.tcp_max_orphans 3276800 net.ipv4.tcp_max_syn_backlog 65536 net.ipv4.tcp_timestamps 0 net.ipv4.tcp_synack_retries 2 net.ipv4.tcp_syn_retries 2 net.ipv4.tcp_tw_reuse 1 net.ipv4.tcp_mem 94500000 915000000 927000000 net.ipv4.tcp_fin_timeout 30 net.ipv4.tcp_keepalive_time 1200 net.ipv4.ip_local_port_range 1024 65535 # 系统优化 fs.file-max 655360 vm.swappiness 10 EOF# 生效配置sysctl-p8.3 SWAP优化# 查看SWAP使用情况free-hswapon-s# 创建SWAP文件如需要ddif/dev/zeroof/swapfilebs1Mcount2048mkswap/swapfileswapon/swapfile# 永久生效echo/swapfile swap swap defaults 0 0/etc/fstab# 调整swappiness值越小越少使用swapsysctlvm.swappiness10echovm.swappiness 10/etc/sysctl.conf九、常用软件安装9.1 基础工具包# 安装常用工具yuminstall-yvimwgetcurlnet-tools telnet treehtopiotop iftoplsofncnmap tcpdump sysstat bash-completion9.2 自动补全配置# 安装bash-completionyuminstall-ybash-completion# 重新加载source/etc/profile.d/bash_completion.sh# 或重启终端9.3 有趣的小工具# 安装epel源后可用yuminstall-ysl cowsay# 小火车sl# 动物说话cowsayHello Linuxanimalsay你好# 其他有趣工具yuminstall-yfiglet lolcat figletLinux|lolcat十、系统优化检查清单10.1 初始化检查表检查项命令预期结果系统版本cat /etc/redhat-releaseCentOS 7.x内核版本uname -r3.10.0SELinux状态getenforceDisabled/Permissive防火墙状态systemctl status firewalld根据需求时间同步date时间正确YUM源yum repolist国内镜像磁盘空间df -h使用率80%内存使用free -h可用内存20%10.2 优化脚本示例#!/bin/bash# CentOS 7 系统初始化优化脚本# 1. 关闭SELinuxsetenforce0sed-is/SELINUXenforcing/SELINUXdisabled//etc/selinux/config# 2. 关闭防火墙根据需求选择systemctl stop firewalld systemctl disable firewalld# 3. 关闭NetworkManagersystemctl stop NetworkManager systemctl disable NetworkManager# 4. 更换YUM源mv/etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backupcurl-o/etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repowget-O/etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo yum clean all yum makecache# 5. 安装常用工具yuminstall-yvimwgetcurlnet-tools telnet tree bash-completion# 6. 时间同步yuminstall-yntpdateecho*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com /dev/null 21/var/spool/cron/root# 7. 文件描述符优化echo* soft nofile 65535/etc/security/limits.confecho* hard nofile 65535/etc/security/limits.conf# 8. 字符集设置echoLANGen_US.UTF-8/etc/locale.conf# 9. 历史记录优化echoexport HISTTIMEFORMAT%Y-%m-%d %H:%M:%S /etc/profileechoexport HISTSIZE10000/etc/profile# 10. 别名设置echoalias vivim/etc/bashrcechoalias grepgrep --colorauto/etc/bashrcecho系统优化完成建议重启服务器附录复习以及可能用到A. 常用命令速查命令用途systemctl status 服务名查看服务状态systemctl start/stop/restart 服务名启停服务systemctl enable/disable 服务名开机自启管理journalctl -u 服务名查看服务日志ss -tlnp查看监听端口ps auxgrep 进程名kill -9 PID强制结束进程B. 重要配置文件路径文件说明/etc/ssh/sshd_configSSH服务配置/etc/selinux/configSELinux配置/etc/yum.repos.d/YUM仓库目录/etc/fstab文件系统表/etc/sysctl.conf内核参数配置/etc/security/limits.conf资源限制配置/var/log/messages系统日志/var/log/secure安全日志
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2443117.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!