Ubuntu 22.04开局部署一键优化脚本
作者:LeeHang
邮箱:1551870715@qq.com
脚本功能简介:
本脚本旨在为新安装的Ubuntu 22.04系统提供一键优化功能,包括但不限于:
1.更改软件源为阿里云,以加速软件包的下载速度。
2.关闭防火墙和SELinux,减少不必要的安全检查。
3.优化SSH服务配置,提高远程管理的安全性。
4.同步系统时间,确保系统时间的准确性。
5.优化swap分区设置,提高系统性能。
6.调整文件描述符限制,提升系统并发处理能力。
7.自定义命令提示符颜色,增强终端视觉效果。
8.安装常用Linux工具,如vim、net-tools等。
9.优化系统内核参数,提升系统响应速度和网络性能。
10.提供菜单级选项,用户可以根据需要选择优化项或执行一键优化。
11.脚本使用说明:
12.直接运行此脚本,将显示菜单,用户可以选择执行单个优化操作或全部优化。
选择一键优化将自动执行所有优化步骤,脚本如下:
点击查看代码
#!/bin/bash
#
# ******************************************************************************
# * 脚本名称:Ubuntu22.04-Optimization-Script.sh
# *
# * 作者:LeeHang
# *
# * 邮箱:1551870715@qq.com
# *
# * 创建日期:2023-11-05
# *
# * 版本:1.0
# *
# * 描述:此脚本用于自动化Ubuntu 22.04操作系统的优化配置。
# * 包括更换软件源、安全设置、性能优化等。
# ******************************************************************************
#
# ******************************************************************************
# 定义颜色代码
RED="\033[0;31m"
GREEN="\033[0;32m"
YELLOW="\033[0;33m"
BLUE="\033[0;34m"
MAGENTA="\033[0;35m"
CYAN="\033[0;36m"
WHITE="\033[0;37m"
RESET="\033[0m"
# 函数:更改yum源为阿里云
change_yum_source() {
echo "更改yum源为阿里云..."
# 备份原始的sources.list文件
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
# 写入阿里云的源
sudo bash -c 'cat > /etc/apt/sources.list' << EOF
deb http://mirrors.aliyun.com/ubuntu/ $(lsb_release -sc) main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ $(lsb_release -sc) main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ $(lsb_release -sc)-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ $(lsb_release -sc)-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ $(lsb_release -sc)-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ $(lsb_release -sc)-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ $(lsb_release -sc)-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ $(lsb_release -sc)-security main restricted universe multiverse
EOF
# 更新软件源
sudo apt-get update
}
# 函数:关闭防火墙以及selinux
disable_firewall_selinux() {
echo "关闭防火墙以及selinux..."
# 关闭防火墙
sudo ufw disable
# Ubuntu默认没有selinux,如果需要可以安装后关闭
# sudo apt-get install selinux-utils
# sudo setenforce 0
}
# 函数:时间同步
time_sync() {
echo "正在将时区设置为中国上海时区..."
# 设置时区为中国时区
sudo timedatectl set-timezone Asia/Shanghai
# 检查时区设置是否成功
if [ $? -eq 0 ]; then
# 开启时间同步服务
echo "正在开启时间同步服务..."
sudo timedatectl set-ntp on
# 检查NTP服务状态
if sudo timedatectl status | grep -q "NTP service: active"; then
echo -e "${GREEN}时区已成功设置为中国上海时区,并且时间同步服务已开启。${RESET}"
else
echo -e "${GREEN}时区已成功设置为中国上海时区,但时间同步服务未能开启。${RESET}"
fi
else
echo -e "${GREEN}时区设置失败,请检查您的输入。${RESET}"
fi
}
# 函数:swap分区优化
swap_partition_optimization() {
echo "swap分区优化..."
# 创建swap文件
sudo fallocate -l 1G /swapfile
# 设置swap文件权限
sudo chmod 600 /swapfile
# 格式化swap文件
sudo mkswap /swapfile
# 启用swap文件
sudo swapon /swapfile
# 设置开机启动
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
}
# 函数:优化文件描述符
optimize_file_descriptors() {
echo "优化文件描述符..."
# 编辑limits.conf文件以增加文件描述符限制
sudo bash -c 'cat > /etc/security/limits.conf' << EOF
* soft nofile 65536
* hard nofile 65536
root soft nofile 65536
root hard nofile 65536
EOF
# 应用新的文件描述符限制
echo "应用新的文件描述符限制..."
sudo sysctl -p
# 检查文件描述符限制是否已更新
if [ $(ulimit -n) -eq 65536 ]; then
echo "文件描述符优化成功,当前限制为 65536。"
else
echo "文件描述符优化失败,请检查配置。"
fi
}
# 函数:修改命令提示符颜色
modify_prompt_color() {
echo "修改命令提示符颜色..."
# 为所有用户设置命令提示符颜色
echo " export PS1='[\[\033[1;32m\]\u\[\033[1;37m\]@\[\033[1;36m\]\h\[\033[00m\]:\[\033[1;34m\]\W\[\033[00m\]]\$' " >> /root/.bashrc
# 重新加载bash配置文件以立即应用更改
source /root/.bashrc
echo "命令提示符颜色已更新。"
}
# 函数:安装linux常用工具
install_common_tools() {
echo "安装Linux常用工具..."
# 更新软件包列表
sudo apt-get update
# 安装网络工具
sudo apt-get install -y vim lrzsz net-tools telnet traceroute nmap htop iftop
# 安装性能检测工具
sudo apt-get install -y iotop iostat sysstat mtr
# 安装抓包工具
sudo apt-get install -y tcpdump
# 安装压缩解压工具
sudo apt-get install -y unzip zip gzip
# 安装系统监控工具
sudo apt-get install -y nmon
# 安装文本处理工具
sudo apt-get install -y grep sed awk
# 安装其他实用工具
sudo apt-get install -y curl wget
echo "常用工具安装完成。"
}
# 函数:系统内核优化
kernel_optimization() {
echo "系统内核优化..."
# 编辑sysctl.conf文件
sudo bash -c 'cat >> /etc/sysctl.conf' << EOF
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_max_syn_backlog = 65536
vm.swappiness = 10
EOF
# 应用内核参数
sudo sysctl -p
}
# 打印分隔线
print_separator() {
echo "${BLUE}================>${RESET} ${WHITE}$1 ${RESET}${BLUE}<================${RESET}"
}
# 显示菜单
show_menu() {
print_separator "请选择要执行的优化项"
echo "${RED}1. ${RESET}${GREEN}更改yum源为阿里云"
echo "${RED}2. ${RESET}${YELLOW}关闭防火墙以及selinux"
echo "${RED}3. ${RESET}${MAGENTA}时间同步"
echo "${RED}4. ${RESET}${CYAN}swap分区优化"
echo "${RED}5. ${RESET}${WHITE}优化文件描述符"
echo "${RED}6. ${RESET}${GREEN}修改命令提示符颜色"
echo "${RED}7. ${RESET}${YELLOW}安装linux常用工具"
echo "${RED}8. ${RESET}${BLUE}系统内核优化"
echo "${RED}9. ${RESET}${MAGENTA}一键执行所有优化"
echo "${RED}10. ${RESET}${RED}退出脚本"
print_separator "请选择一个选项"
read -p "请输入选项:" option
case $option in
1) change_yum_source ;;
2) disable_firewall_selinux ;;
3) time_sync ;;
4) swap_partition_optimization ;;
5) optimize_file_descriptors ;;
6) modify_prompt_color ;;
7) install_common_tools ;;
8) kernel_optimization ;;
9) one_key_optimization ;;
10) echo "exit success!" ;;
*) echo -e "\033[1;31m无效选项\033[0m" ;;
esac
}
# 一键优化
one_key_optimization() {
echo "执行一键优化..."
change_yum_source && disable_firewall_selinux && time_sync && swap_partition_optimization && optimize_file_descriptors && modify_prompt_color && install_common_tools && kernel_optimization
}
# 主循环
while true; do
show_menu
if [[ $option == 9 ]]; then
one_key_optimization
break
elif [[ $option == 10 ]]; then
break
else
continue
fi
done
浙公网安备 33010602011771号