ansible-devops/scripts/system_optimize.sh

125 lines
3.6 KiB
Bash
Raw Normal View History

2025-07-05 15:49:53 +08:00
#!/bin/bash
# 颜色定义
GREEN='\033[1;32m'
RED='\033[1;31m'
YELLOW='\033[1;33m'
NC='\033[0m' # 重置颜色
# 日志函数 - 绿色输出
log_info() {
echo -e "${GREEN}[INFO] $1${NC}"
}
# 错误函数 - 红色输出
log_error() {
echo -e "${RED}[ERROR] $1${NC}"
}
# 警告函数 - 黄色输出
log_warning() {
echo -e "${YELLOW}[WARNING] $1${NC}"
}
# 禁用apt的定期更新
disable_apt_periodic_updates() {
log_info "禁用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定期更新已禁用"
}
# 设置系统时区为上海
set_timezone_to_shanghai() {
log_info "设置系统时区为上海..."
# 使用timedatectl命令设置系统时区为Asia/Shanghai
timedatectl set-timezone Asia/Shanghai
log_info "系统时区已设置为上海"
}
# 同步硬件时钟和系统时钟
synchronize_hardware_clock() {
log_info "同步硬件时钟和系统时钟..."
# 使用hwclock命令将系统时间同步到硬件时钟
hwclock --systohc
log_info "硬件时钟和系统时钟已同步"
}
# 删除"ubuntu"用户
#remove_ubuntu_user() {
# log_info "删除'ubuntu'用户..."
# # 使用userdel命令删除ubuntu用户并递归删除其主目录
# # &> /dev/null用于忽略可能的错误输出例如用户不存在的情况
# userdel -r ubuntu &> /dev/null
# log_info "已尝试删除'ubuntu'用户(如果存在)"
#}
# 禁止显卡驱动
disable_nouveau_driver() {
log_info "禁止nouveau显卡驱动..."
# 创建blacklist-nouveau.conf文件添加禁止nouveau驱动的配置
cat > /etc/modprobe.d/blacklist-nouveau.conf << EOF
blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off
EOF
# 创建nouveau-kms.conf文件禁用nouveau的KMS内核模式设置
cat > /etc/modprobe.d/nouveau-kms.conf << EOF
options nouveau modeset=0
EOF
# 更新initramfs使驱动禁用配置生效
update-initramfs -u &> /dev/null
log_info "nouveau显卡驱动已被禁止"
}
# 更改GRUB配置并更新
update_grub_configuration() {
log_info "更改GRUB配置启用传统网络接口命名..."
# 检查GRUB配置中是否已存在所需的网络接口命名设置
if ! grep -q 'GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=1 biosdevname=0"' /etc/default/grub; then
# 如果不存在则注释掉原有的GRUB_CMDLINE_LINUX_DEFAULT行
sed -i '/GRUB_CMDLINE_LINUX_DEFAULT=.*/s/^/#/' /etc/default/grub
# 添加新的GRUB_CMDLINE_LINUX_DEFAULT行启用传统网络接口命名
sed -i '/GRUB_CMDLINE_LINUX_DEFAULT=.*/a\GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=1 biosdevname=0"' /etc/default/grub
fi
# 再次检查配置是否已成功添加
if grep -q 'GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=1 biosdevname=0"' /etc/default/grub; then
log_info "文件 /etc/default/grub 修改成功!"
else
log_error "文件 /etc/default/grub 修改失败!"
exit 1
fi
# 更新GRUB引导加载程序配置
update-grub &> /dev/null
log_info "GRUB配置已更新"
}
# 主函数:按顺序执行所有配置步骤
main() {
log_info "开始系统配置..."
disable_apt_periodic_updates
set_timezone_to_shanghai
synchronize_hardware_clock
disable_nouveau_driver
update_grub_configuration
log_info "系统配置完成!"
}
# 执行主函数
main