新闻详情

新闻详情

首页 / 资讯中心 / 详情

Centos7初始优化脚本(系统优化)

发布时间:2026/11/5 12:10:09来源:尧图网络
Centos7初始优化脚本(系统优化)
Centos7初始优化脚本Centos7可优化的服务下载脚本示例代码Centos7可优化的服务打印服务下载脚本适用于虚拟机下安装Centos7-minihttps://blog.csdn.net/Memory_7s/article/details/105997879# 下载已经写好的脚本wget-chttps://raw.githubusercontent.com/omaidb/qiaofei_notes/main/shell_code/os_int.shbashos_int.sh示例代码#!/usr/bin/env bash# 判断Linux发行版check_os(){# 如果有yum包管理器就是rhel系统发行版(whichyum||echo不是rhel发行版exit1)osrhel# 获取os的版本号os_version$(grep-shoE[0-9]/etc/redhat-release /etc/almalinux-release /etc/rocky-release /etc/centos-release|head-1)}# 判断Linux版本check_os_ver(){if[[$os$os_version-lt7]];thenecho使用此安装程序需要 CentOS 7 或更高版本。 此版本的 CentOS 太旧且不受支持.exit1fi}# 0.安装前OS环境检查check_os_env(){# 先检查系统发行版check_os# 检查Linux版本号check_os_ver}# 1. 关闭防火墙和SELinuxdisable_firewalld(){## 永久关闭防火墙systemctl disable--nowfirewalld## 注销firewalld服务systemctl mask firewalld## 立即临时关闭SELinuxsetenforce0## 永久关闭SELinuxsed-ris#(SELINUX).*#\1disabled#/etc/selinux/config## 查看SELinux永久策略是否关闭evalgrep SELINUX /etc/selinux/config}# 2.内核参数调整set_kernel_config(){echo # 关闭IPV6 net.ipv6.conf.all.disable_ipv6 1 net.ipv6.conf.default.disable_ipv6 1 net.ipv6.conf.lo.disable_ipv6 1 # 开启内核开启数据包转发 # net.ipv4.ip_forward 1 # net.ipv4.conf.all.proxy_arp 1/etc/sysctl.confsysctl-p}# 3. PS1美化set_PS1(){echo # PS1美化 export PS1\n\e[1;37m[\e[m\e[1;32m\u\e[m\e[1;33m\e[m\e[1;35m\H\e[m\e[4m\w\e[m\e[1;37m] \[\e[1;33m WORK\e\e[m\e[1;36m\e[m$(echo$?)\n\$ /etc/profile.d/ps1.sh}# 3.0开启history的时间记录config_cmd_history_time(){echo # 保存历史命令10条 HISTSIZE10 # 设置history的时间记录格式 HISTTIMEFORMAT%F %R # 使变量全局生效 export HISTSIZE HISTTIMEFORMAT # 以空格开头的命令行不记录 export HISTCONTROL ignorespace /etc/profile/history.sh}# 3.1 配置vimrcset_vimrc(){echo set nocompatible set cursorline set cursorcolumn set termbuiltin_ansi set scrolloff7 set hlsearch set incsearch set autoindent set cindent set smartindent set tabstop2 set shiftwidth2 set softtabstop2 set expandtab set showmatch set wrap syntax on set t_Co256 highlight CursorLine ctermnone ctermbgDarkMagenta ctermfgWhite highlight CursorColumn ctermnone ctermbgDarkMagenta ctermfgWhite highlight Search ctermreverse ctermbgnone ctermfgnone set backspace2 set backup set autowrite set confirm set ruler set showmode set showcmd set paste set nu set encodingutf-8 ~/.vimrc}# 3.2配置.bashrcset_bashrc(){echo # 配置proxy变量 alias proxyexport all_proxysocks5://admin:Admin123.127.0.0.1:3389 alias unproxyunset all_proxy # 防止htop无任何输出 export TERMxterm /root/.bashrc}# 4.设置localeset_locale_config(){# 安装语言包,防止出现locate错误yuminstall-yglibc-minimal-langpack glibc-locale-source glibc-langpack-zh glibc-langpack-enecho LC_ALLzh_CN.UTF-8 LANGzh_CN.UTF8 /etc/locale.conf# 现在生效locatesource/etc/locale.conf}# 5. 优化sshoptimization_ssh_config(){echo # ssh_config常用的参数 ## 忽略第一次密钥检查 StrictHostKeyChecking no ## GSSAPI认证能优化ssh连接速度 GSSAPIAuthentication no ## 检查IP CheckHostIP no ## 启用压缩 Compression yes ## 指定变量 SendEnv LANG zh_CN.UTF-8 # 配置1天(60秒*1440次)内ssh客户端不超时 ## 服务器存活最大数值超过次1440次服务器无响应客户端会断掉 ServerAliveCountMax 1440 ## 服务器存活时间间隔,60秒发送一次KeepAlive ServerAliveInterval 60 ## 发送TCP保活报文 TCPKeepAlive yes # 重用相同的连接 ControlMaster auto ## 连接状态文件 ControlPath ~/.ssh/ssh_mux_%h_%p_%r ## 72小时内保持连接(只需要第一次输入密码) ControlPersist 72h /root/.ssh/config}# 6. 配置tuned自动调优set_tunded_optimization(){sed-ris#(^dynamic_tuning).*#\1 1#/etc/tuned/tuned-main.conf## 查看是否修改成功evalgrep dynamic_tuning /etc/tuned/tuned-main.conf## 重启tuned服务systemctl restart tuned## 使用虚拟机和低时延方案tuned-adm profile virtual-guest network-latency## 查看当前生效的方案evaltuned-adm active}# 7. 禁用非必需的服务开机自启disable_nonecessary_service(){# ## 创建一个不间断会话# screen -R NetworkManager;# ## 禁用network服务启用NetworkManager服务# systemctl disable --now network systemctl enable --now NetworkManager## 禁用postfix服务systemctl disable--nowpostfix## 注销postfix服务systemctl mask postfix# 精简开机自启动服务# https://blog.51cto.com/u_9625010/2385687## 必须的服务启动列表# systemctl list-unit-files|grep enable 过滤查看启动项如下# abrt-ccpp.service enabled abrt为auto bug report的缩写 用于bug报告 关闭# abrt-oops.service enabled ----------------------# abrt-vmcore.service enabled ----------------------# abrt-xorg.service enabled ----------------------# abrtd.service enabled ----------------------# auditd.service enabled 安全审计 保留# autovt.service enabled 登陆相关 保留# crond.service enabled 定时任务 保留# dbus-org.freedesktop.NetworkManager.service enabled 桌面网卡管理 关闭# dbus-org.freedesktop.nm-dispatcher.service enabled ----------------------# getty.service enabled tty控制台相关 保留# irqbalance.service enabled 优化系统中断分配 保留# kdump.service enabled 内核崩溃信息捕获 自定# microcode.service enabled 处理器稳定性增强 保留# NetworkManager-dispatcher.service enabled 网卡守护进程 关闭# NetworkManager.service enabled ----------------------# postfix.service enabled 邮件服务 关闭# rsyslog.service enabled 日志服务 保留# snmpd.service enabled snmp监控 数据抓取 保留# sshd.service enabled ssh登陆 保留# systemd-readahead-collect.service enabled 内核调用--预读取 保留# systemd-readahead-drop.service enabled ----------------------# systemd-readahead-replay.service enabled ----------------------# tuned.service enabled# default.target enabled 默认启动项 multi-user.target的软连接 保留# multi-user.target enabled 启动用户命令环境 保留# remote-fs.target enabled 集合远程文件挂载点 自定# runlevel2.target enabled 运行级别 用于兼容6的SysV 保留# runlevel3.target enabled ----------------------# runlevel4.target enabled ----------------------## 除必须启动的服务外禁用并现在停止其他服务。systemctl list-unit-files--stateenabled|grep-Evauditd.service|autovt.service|crond.service|chronyd.service|getty.service|irqbalance.service|microcode.service|rsyslog.service|NetworkManager.service|sshd.service|sysstat.service|systemd-readahead-collect.service|systemd-readahead-drop.service|systemd-readahead-replay.service|tuned.service|default.target|multi-user.target|runlevel2.target|runlevel3.target|runlevel4.target|wg-quickwg0|edge|supernode.service|ocserv.service|awk{print systemctl disable --now,$1}|bash# 禁用后查看自启服务列表还剩哪些systemctl list-unit-files--stateenabled|grepenabled}# 8. 安装常用repo源install_repo(){# 如果epel.repo文件不存在就安装epel源if[-f/etc/yum.repos.d/epel.repo]||[-f/etc/yum.repos.d/oracle-epel-ol8.repo];thenecho本地已有epel.repoelsednfinstall-yepel-releasefi# 安装elrepo源ls/etc/yum.repo.d/elrepo.repo||dnfinstall-yelrepo-release# 如果系统版本号7,就安装SCL源和IUS源if$os_version-eq7;then## centos-release-scl centos-release-scl-rh是SCL源## scl-utils scl-utils-build是SCL-utils工具yuminstall-ycentos-release-scl centos-release-scl-rh scl-utils scl-utils-build# 安装IUS源(依赖依赖epel源)## 导入IUS源gpg keyrpm--importhttps://repo.ius.io/RPM-GPG-KEY-IUS-7## 安装IUS源yuminstall-yhttps://repo.ius.io/ius-release-el7.rpmfi# 安装REMi源yuminstall-yhttp://rpms.famillecollet.com/enterprise/remi-release-$os_version.rpm# 查看repolistyum repolist}# 9. 安装常用必装软件 例如bash-completion-extras viminstall_necessary_pkg(){# 安装终端自动补全 pip3 dnf 虚拟机增强插件 linux核心标准yuminstall-ybash-completion bash-completion-extras python3-pip dnf open-vm-tools redhat-lsb## 9.1 安装wireguard内核模块# yum install -y kmod-wireguard### 在启动时自动加载wireguard模块# echo wireguard /etc/modules-load.d/wireguard.conf# 安装wg-quickyuminstall-ywireguard-tools## 9.2 安装常用软件yuminstall-ypvnet-toolsvimlrzszcurlwgettreescreensocatlsoftelnet tcpdump iperf3 qrencode proxychains-ngtraceroutebind-utils yuminstall-yconntrack jq sysstat libseccompgitchrony## 9.3 卸载不常用软件nanoyum autoremove-ynano}# 10.配置xsync工具create_xsync(){# 检查目录是否存在ls~/bin/dev/null||mkdir-p~/binecho #!/usr/bin/env bash # 0.依赖包检查 which rsync /dev/null || yum install -y rsync || apt install -y rsync ls ~/xsync.txt /dev/null || touch ~/xsync.txt # 1.判断参数个数没有参数就会退出 ## $#获取参数个数-lt 1减1 if [ $# -lt 1 ]; then # 打印使用示例 echo 必需有一个参数 echo 使用示例: xsync 目录 echo 意思是将指定目录同步到远程目录 exit fi # 2. 遍历所有服务器 # ******************注意for循环这里需要根据情况将机器列表改成相应的主机名****************** for host in $(cat ~/xsync.txt); do echo 当前主机: $host # 3. 遍历所有目录并发送 # $: 获取所有参数 echo ****************** 以列表形式显示所有的输入参数: $ ****************** for file in $; do # 4. 判断文件是否存在 if [ -e $file ]; then # 5. 获取父目录 pdir$( cd -P $(dirname $file) || exit pwd ) echo ------父亲目录是: $pdir------ # 6. 获取当前文件名 fname$(basename $file) echo ----------------当前文件:$fname----------- # 在目标主机上创建父目录 ssh $host mkdir -p $pdir ## -a 表示以递归方式传输文件并保持所有文件属性等于-rlptgoD ## -S 将空序列变成稀疏块 ## -H 保留硬链结 ## -P 断点续传并打印过程, rsync -aSHP $pdir/$fname $host:$pdir # rsync同步文件到远程目录 else echo $file 文件不存在! fi done done~/bin/xsync# 赋予~/bin/xsync可执行权限chmodx ~/bin/xsync}# 11. 阻止内核更新prevent_kernel_upgrade(){# 安装versionlock工具yuminstall-ydnf-command(versionlock)yuminstall-yyum-plugin-versionlock# 备份原配置cp/etc/yum.conf /etc/yum.conf.bak# 禁止yum升级内核-可能会造成软件包的依赖问题yum versionlock kernel* centos-release* initscripts*# 添加排除的包前缀,如果过滤规则存在就不添加if!grepexcludekernel*/etc/yum.conf/dev/null;then# 添加禁止升级的包sed-i$a excludekernel* centos-release* initscripts*/etc/yum.conffi}main(){# 0.安装前OS环境检查check_os_env# 1. 关闭防火墙和SELinuxdisable_firewalld# 2.内核参数调整set_kernel_config# 3. PS1美化set_PS1# 3.0开启history的时间记录config_cmd_history_time# 3.1 美化vimset_vimrc# 3.2 设置bashrcset_bashrc# 4.设置localeset_locale_config# 5. 优化sshoptimization_ssh_config# 6. 配置tuned自动调优set_tunded_optimization# 7. 禁用非必需的postfix服务,启用NetworkManager服务disable_nonecessary_service# 8. 安装常用repo源install_repo# 9. 安装常用必装软件install_necessary_pkg# 10 创建同步工具xsynccreate_xsync# 11. 阻止内核升级#prevent_kernel_upgrade}# 启动主方法main
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

【外设】之大彩串口显示屏 2026/11/4 15:56:54

【外设】之大彩串口显示屏

大彩串口屏初步使用 1 .官网下载 STM32 屏幕 GUI 设计资料 http://www.gz-dc.com/category/typeid/4112 找到 STM32 Keil 工程,移植相关代码因项目而异进行移植,由于项目简单,本人只对用到的指令接口进行修改。 比如:注意事项&…

阅读更多 →
无法下载Windows系统iso文件 2026/11/4 22:55:41

无法下载Windows系统iso文件

当我遇到这个问题的时候,我打开了一个网站: 登录 然后我打算下载的时候: 突然那个官方的连接就可以下载了:

阅读更多 →
【清华代码熊】DeepSeek V4.1 Flash 后训练详解 2026/11/4 17:01:23

【清华代码熊】DeepSeek V4.1 Flash 后训练详解

📌 上期解析了 DeepSeek V4.1 Flash 模型架构改进,本期解析 DeepSeek V4.1 Flash 预训练/后训练技术: 🌟 预训练:45T 文本 多模态混合语料、直接训练 sparse attention(取消 DeepSeek V4 的 dense 冷启动&…

阅读更多 →
Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ... 2026/11/4 12:33:12

Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ...

文章主要内容和创新点 主要内容 本文聚焦于多模态大语言模型(MLLM)强化学习(RL)训练中的效率问题,提出了一个名为Shuffle-R1的框架。研究发现,当前RL训练存在两个关键缺陷: 优势值坍缩(Advantage Collapsing):批次中大多数优势值集中在零附近,导致有效梯度信号被淹…

阅读更多 →
PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction 2026/11/5 4:24:57

PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction

一、文章主要内容总结 本文聚焦于利用大型语言模型(LLMs)实现个人身份信息(PII)脱敏的研究,旨在解决传统脱敏方法(如基于规则的系统、领域特定命名实体识别(NER)模型)泛化能力差、跨格式/跨语境适应性弱的问题。 研究通过全面评估多种LLM架构(包括密集型LLM(D-LLM…

阅读更多 →
LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model 2026/11/5 4:24:57

LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model

文章主要内容和创新点 主要内容 本文聚焦于二进制图像-文本相关性评估任务(判断图像与文本“相关”或“不相关”),针对该任务中文本格式多样、相关性定义随场景变化等挑战,提出了基于多模态大语言模型(MLLM)的解决方案LLaVA-RE。 模型设计:LLaVA-RE基于LLaVA 1.5架构,…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉