更新 scripts/system_optimize.sh

This commit is contained in:
joy 2025-07-18 16:46:40 +08:00
parent c16c6e4228
commit ee180821fc
1 changed files with 44 additions and 30 deletions

View File

@ -22,40 +22,50 @@ log_warning() {
echo -e "${YELLOW}[WARNING] $1${NC}" 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的定期更新 # 禁用apt的定期更新
disable_apt_periodic_updates() { disable_apt_periodic_updates() {
log_info "禁用apt的定期更新..." log_info "[2]-禁用apt的定期更新..."
# 修改10periodic配置文件将所有的1改为0禁用自动更新检查 # 修改10periodic配置文件将所有的1改为0禁用自动更新检查
sed -i 's/1/0/g' /etc/apt/apt.conf.d/10periodic sed -i 's/1/0/g' /etc/apt/apt.conf.d/10periodic
# 修改20auto-upgrades配置文件将所有的1改为0禁用自动升级 # 修改20auto-upgrades配置文件将所有的1改为0禁用自动升级
sed -i 's/1/0/g' /etc/apt/apt.conf.d/20auto-upgrades sed -i 's/1/0/g' /etc/apt/apt.conf.d/20auto-upgrades
log_info "apt定期更新已禁用" log_info "[2]-apt定期更新已禁用"
} }
# 设置系统时区为上海 # 设置系统时区为上海
set_timezone_to_shanghai() { set_timezone_to_shanghai() {
log_info "设置系统时区为上海..." log_info "[3]-设置系统时区为上海..."
# 使用timedatectl命令设置系统时区为Asia/Shanghai # 使用timedatectl命令设置系统时区为Asia/Shanghai
timedatectl set-timezone Asia/Shanghai timedatectl set-timezone Asia/Shanghai
log_info "系统时区已设置为上海" log_info "[3]-系统时区已设置为上海"
} }
# 同步硬件时钟和系统时钟 # 同步硬件时钟和系统时钟
synchronize_hardware_clock() { synchronize_hardware_clock() {
log_info "同步硬件时钟和系统时钟..." log_info "[4]-同步系统硬件时钟..."
# 使用hwclock命令将系统时间同步到硬件时钟 # 使用hwclock命令将系统时间同步到硬件时钟
log_info "安装hwclock"
apt update &>/dev/null
apt install util-linux-extra -y &>/dev/null
hwclock --systohc hwclock --systohc
log_info "硬件时钟和系统时钟已同步" log_info "[4]-系统硬件时钟已同步!"
} }
#关闭休眠 #关闭休眠
off_sleep(){ off_sleep(){
log_info "关闭系统休眠..." log_info "[5]-关闭系统休眠..."
systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target &>> /tmp/2.log 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(){ lock_current_kernel(){
log_info "锁定系统内核..." log_info "[6]-锁定系统内核..."
# 自动锁定当前运行的内核版本 # 自动锁定当前运行的内核版本
CURRENT_KERNEL=$(uname -r) CURRENT_KERNEL=$(uname -r)
GRUB_FILE="/etc/default/grub" GRUB_FILE="/etc/default/grub"
@ -82,8 +92,7 @@ lock_current_kernel(){
cp -f "$GRUB_FILE" "${GRUB_FILE}.bak" 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" sed -i '/GRUB_DEFAULT=/c\GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux '${CURRENT_KERNEL}'"' "$GRUB_FILE"
update-grub &>/dev/null update-grub &>/dev/null
log_info "系统内核已锁定: $CURRENT_KERNEL" log_info "[6]-系统内核已锁定!"
log_info "稍后记得执行 'reboot' 重启系统!"
else else
log_info "内核版本 $CURRENT_KERNEL 已锁定,无需操作" log_info "内核版本 $CURRENT_KERNEL 已锁定,无需操作"
fi fi
@ -94,7 +103,7 @@ lock_current_kernel(){
# 自动扩展根逻辑卷至最大可用空间 # 自动扩展根逻辑卷至最大可用空间
extend_root_volume() { extend_root_volume() {
log_info "根分区扩容..." log_info "[7]-根分区扩容..."
local root_lv=$(df / | tail -1 | awk '{print $1}') local root_lv=$(df / | tail -1 | awk '{print $1}')
# 检查是否为LVM逻辑卷 # 检查是否为LVM逻辑卷
if ! echo "$root_lv" | grep -q '/dev/mapper/'; then if ! echo "$root_lv" | grep -q '/dev/mapper/'; then
@ -102,9 +111,9 @@ extend_root_volume() {
return 1 return 1
fi fi
# 扩展逻辑卷并调整文件系统 # 扩展逻辑卷并调整文件系统
log_info "扩展逻辑卷: $root_lv" #log_info "扩展逻辑卷: $root_lv"
if lvresize --extents +100%FREE --resizefs "$root_lv" &>/dev/null; then 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}') root_lvsize=$(df -h / | awk 'NR==2 {print "磁盘磁盘根分区大小:",$2}')
log_info ${root_lvsize} log_info ${root_lvsize}
else else
@ -119,7 +128,7 @@ extend_root_volume() {
# 禁止显卡驱动 # 禁止显卡驱动
disable_nouveau_driver() { disable_nouveau_driver() {
log_info "禁止nouveau显卡驱动..." log_info "[8]-禁止nouveau显卡驱动..."
# 创建blacklist-nouveau.conf文件添加禁止nouveau驱动的配置 # 创建blacklist-nouveau.conf文件添加禁止nouveau驱动的配置
cat > /etc/modprobe.d/blacklist-nouveau.conf << EOF cat > /etc/modprobe.d/blacklist-nouveau.conf << EOF
@ -138,12 +147,12 @@ EOF
# 更新initramfs使驱动禁用配置生效 # 更新initramfs使驱动禁用配置生效
update-initramfs -u &> /dev/null update-initramfs -u &> /dev/null
log_info "nouveau显卡驱动已被禁止" log_info "[8]-nouveau显卡驱动已被禁止"
} }
# 更改GRUB配置并更新 # 更改GRUB配置并更新
update_grub_configuration() { update_grub_configuration() {
log_info "更改GRUB配置启用传统网络接口命名..." log_info "[9]-配置GRUB网络接口命名..."
# 检查GRUB配置中是否已存在所需的网络接口命名设置 # 检查GRUB配置中是否已存在所需的网络接口命名设置
if ! grep -q 'GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=1 biosdevname=0"' /etc/default/grub; then 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 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 else
log_error "文件 /etc/default/grub 修改失败!" log_error "[9]-配置GRUB网络接口命名失败!"
exit 1 exit 1
fi fi
# 更新GRUB引导加载程序配置 # 更新GRUB引导加载程序配置
update-grub &> /dev/null update-grub &> /dev/null
log_info "GRUB配置已更新"
} }
#修改主机名 #修改主机名
rename_hostname(){ 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') 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} hostnamectl set-hostname ${IP}
log_info "主机名已修改!" log_info "[9]-主机名已修改!"
} }
#清理历史命令 #清理历史命令
clear_history(){ clear_history(){
log_info "开始历史命令..." log_info "[10]-开始历史命令..."
> ~/.bash_history > ~/.bash_history
history -c history -c
log_info "历史命令已清理" log_info "[10]-历史命令已清理!"
} }
# 主函数:按顺序执行所有配置步骤 # 主函数:按顺序执行所有配置步骤
main() { main() {
log_info "|---------------开始系统配置------------------" log_info "|#################开始系统配置#################"
install_sysadmin_tools
disable_apt_periodic_updates disable_apt_periodic_updates
set_timezone_to_shanghai set_timezone_to_shanghai
lock_current_kernel lock_current_kernel
@ -198,7 +209,10 @@ main() {
off_sleep off_sleep
rename_hostname rename_hostname
clear_history clear_history
log_info "|----------------系统配置完成!------------------" log_info "|-----------------------------------------------"
log_inf "|操作完成后,请通过以下命令重启系统!"
log_info "|ipmitool chassis power cycle"
log_info "|#################系统配置完成!#################"
} }
# 执行主函数 # 执行主函数