From ee180821fc6bec1312e0c381658c23b1f48c3c2c Mon Sep 17 00:00:00 2001 From: joy Date: Fri, 18 Jul 2025 16:46:40 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20scripts/system=5Foptimize.?= =?UTF-8?q?sh?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/system_optimize.sh | 74 ++++++++++++++++++++++---------------- 1 file changed, 44 insertions(+), 30 deletions(-) diff --git a/scripts/system_optimize.sh b/scripts/system_optimize.sh index 70b1d4e..803374f 100644 --- a/scripts/system_optimize.sh +++ b/scripts/system_optimize.sh @@ -22,40 +22,50 @@ log_warning() { echo -e "${YELLOW}[WARNING] $1${NC}" } + +# 安装系统常用工具 +install_sysadmin_tools() { + log_info "[1]-安装系统常用工具包..." + apt update && apt install net-tools ipmitool lrzsz iotop iftop zip unzip jq build-essential util-linux-extra -y &>/dev/null; + log_info "[1]-常用工具包安装完成!" +} + # 禁用apt的定期更新 disable_apt_periodic_updates() { - log_info "禁用apt的定期更新..." + log_info "[2]-禁用apt的定期更新..." # 修改10periodic配置文件,将所有的1改为0,禁用自动更新检查 sed -i 's/1/0/g' /etc/apt/apt.conf.d/10periodic # 修改20auto-upgrades配置文件,将所有的1改为0,禁用自动升级 sed -i 's/1/0/g' /etc/apt/apt.conf.d/20auto-upgrades - log_info "apt定期更新已禁用" + log_info "[2]-apt定期更新已禁用" } + + # 设置系统时区为上海 set_timezone_to_shanghai() { - log_info "设置系统时区为上海..." + log_info "[3]-设置系统时区为上海..." # 使用timedatectl命令设置系统时区为Asia/Shanghai timedatectl set-timezone Asia/Shanghai - log_info "系统时区已设置为上海" + log_info "[3]-系统时区已设置为上海" } + + + # 同步硬件时钟和系统时钟 synchronize_hardware_clock() { - log_info "同步硬件时钟和系统时钟..." + log_info "[4]-同步系统硬件时钟..." # 使用hwclock命令将系统时间同步到硬件时钟 - log_info "安装hwclock" - apt update &>/dev/null - apt install util-linux-extra -y &>/dev/null hwclock --systohc - log_info "硬件时钟和系统时钟已同步" + log_info "[4]-系统硬件时钟已同步!" } #关闭休眠 off_sleep(){ - log_info "关闭系统休眠..." + log_info "[5]-关闭系统休眠..." systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target &>> /tmp/2.log - log_info "关闭系统休眠已关闭!" + log_info "[5]-系统休眠已关闭!" } @@ -71,7 +81,7 @@ off_sleep(){ #锁定版本号 lock_current_kernel(){ - log_info "锁定系统内核..." + log_info "[6]-锁定系统内核..." # 自动锁定当前运行的内核版本 CURRENT_KERNEL=$(uname -r) GRUB_FILE="/etc/default/grub" @@ -82,8 +92,7 @@ lock_current_kernel(){ cp -f "$GRUB_FILE" "${GRUB_FILE}.bak" sed -i '/GRUB_DEFAULT=/c\GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux '${CURRENT_KERNEL}'"' "$GRUB_FILE" update-grub &>/dev/null - log_info "系统内核已锁定: $CURRENT_KERNEL" - log_info "稍后记得执行 'reboot' 重启系统!" + log_info "[6]-系统内核已锁定!" else log_info "内核版本 $CURRENT_KERNEL 已锁定,无需操作" fi @@ -94,7 +103,7 @@ lock_current_kernel(){ # 自动扩展根逻辑卷至最大可用空间 extend_root_volume() { - log_info "根分区扩容..." + log_info "[7]-根分区扩容..." local root_lv=$(df / | tail -1 | awk '{print $1}') # 检查是否为LVM逻辑卷 if ! echo "$root_lv" | grep -q '/dev/mapper/'; then @@ -102,9 +111,9 @@ extend_root_volume() { return 1 fi # 扩展逻辑卷并调整文件系统 - log_info "扩展逻辑卷: $root_lv" + #log_info "扩展逻辑卷: $root_lv" if lvresize --extents +100%FREE --resizefs "$root_lv" &>/dev/null; then - log_info "根分区扩容成功!" + log_info "[7]-根分区扩容成功!" root_lvsize=$(df -h / | awk 'NR==2 {print "磁盘磁盘根分区大小:",$2}') log_info ${root_lvsize} else @@ -119,7 +128,7 @@ extend_root_volume() { # 禁止显卡驱动 disable_nouveau_driver() { - log_info "禁止nouveau显卡驱动..." + log_info "[8]-禁止nouveau显卡驱动..." # 创建blacklist-nouveau.conf文件,添加禁止nouveau驱动的配置 cat > /etc/modprobe.d/blacklist-nouveau.conf << EOF @@ -138,12 +147,12 @@ EOF # 更新initramfs,使驱动禁用配置生效 update-initramfs -u &> /dev/null - log_info "nouveau显卡驱动已被禁止" + log_info "[8]-nouveau显卡驱动已被禁止" } # 更改GRUB配置并更新 update_grub_configuration() { - log_info "更改GRUB配置启用传统网络接口命名..." + log_info "[9]-配置GRUB网络接口命名..." # 检查GRUB配置中是否已存在所需的网络接口命名设置 if ! grep -q 'GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=1 biosdevname=0"' /etc/default/grub; then @@ -155,39 +164,41 @@ update_grub_configuration() { # 再次检查配置是否已成功添加 if grep -q 'GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=1 biosdevname=0"' /etc/default/grub; then - log_info "文件 /etc/default/grub 修改成功!" + log_info "[9]-配置GRUB网络接口命名已完成!" else - log_error "文件 /etc/default/grub 修改失败!" + log_error "[9]-配置GRUB网络接口命名失败!" exit 1 fi # 更新GRUB引导加载程序配置 update-grub &> /dev/null - - log_info "GRUB配置已更新" + } #修改主机名 rename_hostname(){ - log_info "开始修改主机名..." + log_info "[9]-修改主机名称..." IP=$(ip addr | awk '/^[0-9]+: / {}; /inet.*global/ {print gensub(/(.*)\/(.*)/, "\\1", "g", $2)}' | grep `ip route | grep default | awk '{print $3}' | awk -F. '{print $1"."$2}' | head -1` | head -1 | sed 's/\./-/g') hostnamectl set-hostname ${IP} - log_info "主机名已修改!" + log_info "[9]-主机名已修改!" } + + #清理历史命令 clear_history(){ - log_info "开始历史命令..." + log_info "[10]-开始历史命令..." > ~/.bash_history history -c - log_info "历史命令已清理" + log_info "[10]-历史命令已清理!" } # 主函数:按顺序执行所有配置步骤 main() { - log_info "|---------------开始系统配置------------------" + log_info "|#################开始系统配置#################" + install_sysadmin_tools disable_apt_periodic_updates set_timezone_to_shanghai lock_current_kernel @@ -198,7 +209,10 @@ main() { off_sleep rename_hostname clear_history - log_info "|----------------系统配置完成!------------------" + log_info "|-----------------------------------------------" + log_inf "|操作完成后,请通过以下命令重启系统!" + log_info "|ipmitool chassis power cycle" + log_info "|#################系统配置完成!#################" } # 执行主函数