此脚本适用于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}"
浙公网安备 33010602011771号