此脚本适用于centos7系列的操作系统环境,提供友好交互的菜单级脚本,主要完成开局部署一键优化系统环境,主要目的是为了提升centos7部署系统的稳定性和安全性,提升工作效率,具体详细说明如下:

点击查看代码
#!/bin/bash
#=================================================
# File name: optimize_centos.sh
# Description: CentOS 7.9 system optimization script
# Author: LeeHang
# Email: 1551870715@qq.com
#=================================================

# Colors
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color

# Function to display the menu with border
show_menu() {
    echo "##########################################################"
    echo -e "${RED}CentOS 7.9 System Optimization Menu${NC}"
    echo " 1) Disable Firewall"
    echo " 2) Disable SELinux"
    echo " 3) SSH Security Optimization"
    echo " 4) Change YUM Source to Alibaba Cloud"
    echo " 5) Time Synchronization"
    echo " 6) Swap Partition Optimization"
    echo " 7) Optimize File Descriptors"
    echo " 8) Modify Command Prompt Color"
    echo " 9) Install Common Linux Tools"
    echo "10) System Kernel Optimization"
    echo " a) Auto Optimization (All above options)"
    echo " q) Exit"
    echo "##########################################################"
    read -p "Please enter your choice: " choice
}

# Function to disable firewall
disable_firewall() {
    echo -e "${GREEN}Disabling firewall...${NC}"
    systemctl stop firewalld
    systemctl disable firewalld
    echo -e "${GREEN}Firewall disabled.${NC}"
}

# Function to disable SELinux
disable_selinux() {
    echo -e "${GREEN}Disabling SELinux...${NC}"
    sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
    setenforce 0
    echo -e "${GREEN}SELinux disabled.${NC}"
}

# Function to optimize SSH security
ssh_security_optimization() {
    echo -e "${GREEN}Optimizing SSH security...${NC}"
    sed -i 's/#PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
    sed -i 's/#UsePAM yes/UsePAM no/' /etc/ssh/sshd_config
    systemctl restart sshd
    echo -e "${GREEN}SSH security optimized.${NC}"
}

# Function to change YUM source to Alibaba Cloud
change_yum_source() {
    echo -e "${GREEN}Changing YUM source to Alibaba Cloud...${NC}"
    wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
    wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
    yum clean all && yum makecache
    echo -e "${GREEN}YUM source changed to Alibaba Cloud.${NC}"
}

# Function to synchronize time
time_synchronization() {
    echo -e "${GREEN}Synchronizing time...${NC}"
    yum install -y ntp
    systemctl enable ntpd
    systemctl start ntpd
    echo -e "${GREEN}Time synchronized.${NC}"
}

# Function to optimize swap partition
swap_optimization() {
    echo -e "${GREEN}Optimizing swap partition...${NC}"
    # Example: Swap file creation
    # fallocate -l 1G /swapfile
    # chmod 600 /swapfile
    # mkswap /swapfile
    # echo '/swapfile none swap defaults 0 0' >> /etc/fstab
    swapoff -a
    echo -e "${GREEN}Swap partition optimized.${NC}"
}

# Function to optimize file descriptors
optimize_file_descriptors() {
    echo -e "${GREEN}Optimizing file descriptors...${NC}"
    echo "* soft nofile 65535" >> /etc/security/limits.conf
    echo "* hard nofile 65535" >> /etc/security/limits.conf
    echo -e "${GREEN}File descriptors optimized.${NC}"
}

# Function to modify command prompt color
modify_prompt_color() {
    echo -e "${GREEN}Modifying command prompt color...${NC}"
    echo 'export PS1="[\[\033[1;32m\]\u\[\033[1;37m\]@\[\033[1;36m\]\h\[\033[00m\]:\[\033[1;34m\]\W\[\033[00m\]]\$"' >> /etc/profile
    source /etc/profile
    echo -e "${GREEN}Command prompt color modified.${NC}"
}

# Function to install common Linux tools
install_common_tools() {
    echo -e "${GREEN}Installing common Linux tools...${NC}"
    yum install -y vim wget curl git net-tools htop iftop iotop mtr tree nmap lsof tcpdump lrzsz
    echo -e "${GREEN}Common Linux tools installed.${NC}"
}

# Function to optimize system kernel
kernel_optimization() {
    echo -e "${GREEN}Optimizing system kernel...${NC}"
    echo "vm.swappiness=10" >> /etc/sysctl.conf
    sysctl -p
    echo -e "${GREEN}System kernel optimized.${NC}"
}

# Function to auto optimize
auto_optimization() {
    disable_firewall
    disable_selinux
    ssh_security_optimization
    change_yum_source
    time_synchronization
    swap_optimization
    optimize_file_descriptors
    modify_prompt_color
    install_common_tools
    kernel_optimization
    echo -e "${GREEN}Auto optimization completed.${NC}"
}

# Main loop
while true; do
    show_menu
    case $choice in
        1) disable_firewall ;;
        2) disable_selinux ;;
        3) ssh_security_optimization ;;
        4) change_yum_source ;;
        5) time_synchronization ;;
        6) swap_optimization ;;
        7) optimize_file_descriptors ;;
        8) modify_prompt_color ;;
        9) install_common_tools ;;
        10) kernel_optimization ;;
        a) auto_optimization ;;
        q) break ;;
        *) echo "Invalid choice, please try again." ;;
    esac
    echo
    read -p "Press [Enter] key to continue..." readEnterKey
done

echo -e "${GREEN}Optimization script exited.${NC}"

posted on 2025-04-02 09:45  LeeHang  阅读(71)  评论(0)    收藏  举报