基于CentOS可在Debian使用的“Linux系统管理脚本”
[重要通告]如您遇疑难杂症,本站支持知识付费业务,扫右边二维码加博主微信,可节省您宝贵时间哦!
运维CentOS系统的都晓得,这玩意儿一堆的命令每次都比较麻烦,但有些常用的东西都综合一下,还是比较好的,这是一个功能丰富的Bash脚本,用于管理和监控 Linux 系统。它提供了多种系统管理功能,通过彩色菜单界面让用户能够轻松执行各种系统任务。
Linux系统管理脚本主要功能
电源管理:
立即关机
立即重启
软件管理:
更换软件源(支持阿里云、腾讯云、华为云等镜像源)
更新软件包
更新系统
网络配置:
设置系统DNS(支持Google、Cloudflare、阿里等DNS)
网络诊断(接口信息、ping测试、路由追踪)
通过SLAAC获取IPv6
设置NTP自动校时服务器
系统监控:
磁盘检查(使用情况和目录大小)
资源监控(实时进程和内存使用)
CPU管理:
配置CPU电源管理P-State状态(性能模式、节能模式等)
配置CPU工作模式(启用所有核心、禁用超线程等)
脚本特点
彩色终端输出,提高可读性
权限检查,确保需要root权限的操作能正确执行
交互式菜单界面,操作简单直观
在执行关键操作前自动备份原有配置
详细的错误处理和用户反馈
Linux系统管理脚本使用方法
将脚本保存为 systool.sh
添加执行权限:chmod +x systool.sh
运行脚本:sudo ./systool.sh(部分功能需要root权限)
这脚本适合系统管理员或需要频繁执行系统管理任务的用户使用,可以大大简化日常的系统维护工作。
Linux系统管理脚本代码如下:
#!/bin/bash # 颜色定义 RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[0;33m' BLUE='\033[0;34m' NC='\033[0m' # 恢复默认颜色 # 显示标题 display_header() { clear echo -e "${GREEN}" echo "========================================" echo " Linux 系统管理脚本 v1.1" echo "========================================" echo -e "${NC}" } # 检查root权限 check_root() { if [ "$(id -u)" -ne 0 ]; then echo -e "${RED}此操作需要管理员权限,请用sudo执行或切换root用户!${NC}" return 1 fi return 0 } # 电源管理 power_management() { while true; do display_header echo -e "${BLUE}电源管理选项:${NC}" echo "1) 立即关机" echo "2) 立即重启" echo "3) 返回主菜单" read -p "请选择操作: " power_choice case $power_choice in 1) check_root && shutdown now break ;; 2) check_root && shutdown -r now break ;; 3) break ;; *) echo -e "${RED}无效选项,请重新输入!${NC}" sleep 1 ;; esac done } # 磁盘检查 disk_check() { display_header echo -e "${YELLOW}磁盘使用情况:${NC}" df -h echo -e "\n${YELLOW}目录大小检查:${NC}" read -p "输入要检查的目录路径(默认/): " directory directory=${directory:-/} du -sh $directory 2>/dev/null || echo -e "${RED}无法读取目录!${NC}" read -n 1 -s -r -p "按任意键继续..." } # 资源监控 resource_monitor() { while true; do display_header echo -e "${BLUE}资源监控选项:${NC}" echo "1) 实时进程监控(top)" echo "2) 内存使用情况" echo "3) 返回主菜单" read -p "请选择操作: " res_choice case $res_choice in 1) top -o %CPU ;; 2) echo -e "\n${YELLOW}内存使用:${NC}" free -h read -n 1 -s -r -p "按任意键继续..." ;; 3) break ;; *) echo -e "${RED}无效选项!${NC}" sleep 1 ;; esac done } # 网络诊断 network_check() { display_header echo -e "${YELLOW}网络接口信息:${NC}" ip addr show echo -e "\n${YELLOW}网络连通性测试:${NC}" read -p "输入要测试的IP/域名(默认8.8.8.8): " target target=${target:-8.8.8.8} ping -c 4 $target echo -e "\n${YELLOW}路由追踪:${NC}" if command -v traceroute &> /dev/null; then traceroute $target else echo -e "${RED}traceroute 未安装,请先安装!${NC}" fi read -n 1 -s -r -p "按任意键继续..." } # 更换软件源 change_repo() { display_header check_root || return echo -e "${YELLOW}可用的软件源镜像:${NC}" echo "1) 阿里云" echo "2) 腾讯云" echo "3) 华为云" echo "4) 清华大学" echo "5) 网易" echo "6) 中科大" read -p "请选择软件源镜像 (1-6): " repo_choice case $repo_choice in 1) mirror="http://mirrors.aliyun.com" ;; 2) mirror="http://mirrors.tencent.com" ;; 3) mirror="http://mirrors.huaweicloud.com" ;; 4) mirror="https://mirrors.tuna.tsinghua.edu.cn" ;; 5) mirror="http://mirrors.163.com" ;; 6) mirror="https://mirrors.ustc.edu.cn" ;; *) echo -e "${RED}无效选项,使用默认源${NC}" return ;; esac # 备份原有源 if [ -f "/etc/apt/sources.list" ]; then cp /etc/apt/sources.list /etc/apt/sources.list.bak echo -e "${GREEN}已备份原有源到 /etc/apt/sources.list.bak${NC}" fi # 根据系统生成新源 release=$(lsb_release -cs) echo -e "${BLUE}正在设置 $mirror 为软件源...${NC}" cat > /etc/apt/sources.list < /etc/resolv.conf echo "nameserver $dns2" >> /etc/resolv.conf echo -e "\n${GREEN}DNS设置已更新!${NC}" echo -e "${YELLOW}新的DNS配置:${NC}" cat /etc/resolv.conf read -n 1 -s -r -p "按任意键继续..." } # 配置CPU电源管理P-State状态 configure_pstate() { display_header check_root || return echo -e "${YELLOW}当前CPU频率信息:${NC}" cpupower frequency-info echo -e "\n${BLUE}P-State配置选项:${NC}" echo "1) 性能模式 (performance)" echo "2) 节能模式 (powersave)" echo "3) 平衡模式 (ondemand)" echo "4) 自定义调速器" read -p "请选择P-State模式 (1-4): " pstate_choice case $pstate_choice in 1) governor="performance" ;; 2) governor="powersave" ;; 3) governor="ondemand" ;; 4) read -p "输入自定义调速器: " governor ;; *) echo -e "${RED}无效选项,未更改P-State设置${NC}" return ;; esac # 设置调速器 if cpupower frequency-set -g $governor &>/dev/null; then echo -e "\n${GREEN}已设置CPU调速器为 $governor${NC}" else echo -e "\n${RED}设置失败,请检查是否安装了cpufrequtils${NC}" fi echo -e "\n${YELLOW}更新后的CPU频率信息:${NC}" cpupower frequency-info read -n 1 -s -r -p "按任意键继续..." } # 配置CPU工作模式 configure_cpu_mode() { display_header check_root || return echo -e "${YELLOW}当前CPU信息:${NC}" lscpu echo -e "\n${BLUE}CPU工作模式选项:${NC}" echo "1) 启用所有CPU核心" echo "2) 禁用超线程" echo "3) 启用性能模式" echo "4) 返回主菜单" read -p "请选择CPU工作模式 (1-4): " cpu_choice case $cpu_choice in 1) echo -e "\n${BLUE}正在启用所有CPU核心...${NC}" max_cores=$(nproc --all) for ((core=0; core<max_cores; core++)); do echo 1 > /sys/devices/system/cpu/cpu$core/online done echo -e "${GREEN}已启用所有CPU核心${NC}" ;; 2) echo -e "\n${BLUE}正在禁用超线程...${NC}" for cpu in /sys/devices/system/cpu/cpu*/topology/thread_siblings_list; do echo 0 > $cpu 2>/dev/null done echo -e "${GREEN}已禁用超线程${NC}" ;; 3) echo -e "\n${BLUE}正在启用性能模式...${NC}" echo performance | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor >/dev/null echo -e "${GREEN}已启用性能模式${NC}" ;; 4) return ;; *) echo -e "${RED}无效选项!${NC}" ;; esac echo -e "\n${YELLOW}更新后的CPU信息:${NC}" lscpu read -n 1 -s -r -p "按任意键继续..." } # 通过SLAAC获取IPv6 enable_slaac_ipv6() { display_header check_root || return echo -e "${YELLOW}当前网络接口:${NC}" ip -6 addr show read -p "输入要配置IPv6的网络接口名称 (如eth0): " interface if ! ip link show $interface &>/dev/null; then echo -e "${RED}无效的网络接口!${NC}" read -n 1 -s -r -p "按任意键继续..." return fi # 启用IPv6 echo -e "\n${BLUE}正在启用IPv6...${NC}" sysctl -w net.ipv6.conf.$interface.disable_ipv6=0 # 配置SLAAC echo -e "\n${BLUE}正在配置SLAAC...${NC}" sysctl -w net.ipv6.conf.$interface.autoconf=1 sysctl -w net.ipv6.conf.$interface.accept_ra=2 echo -e "\n${GREEN}已为 $interface 启用SLAAC IPv6${NC}" echo -e "\n${YELLOW}更新后的IPv6配置:${NC}" ip -6 addr show $interface read -n 1 -s -r -p "按任意键继续..." } # 设置NTP自动校时服务器 configure_ntp() { display_header check_root || return echo -e "${YELLOW}当前NTP服务器:${NC}" timedatectl show-timesync | grep Server echo -e "\n${BLUE}NTP服务器选项:${NC}" echo "1) 阿里云NTP" echo "2) 腾讯云NTP" echo "3) 国家授时中心" echo "4) 自定义NTP" read -p "请选择NTP服务器 (1-4): " ntp_choice case $ntp_choice in 1) ntp="ntp.aliyun.com" ;; 2) ntp="ntp.tencent.com" ;; 3) ntp="cn.ntp.org.cn" ;; 4) read -p "输入自定义NTP服务器: " ntp ;; *) echo -e "${RED}无效选项,未更改NTP设置${NC}" return ;; esac # 设置NTP timedatectl set-ntp true if [ -f "/etc/systemd/timesyncd.conf" ]; then sed -i "s/^#NTP=/NTP=$ntp/" /etc/systemd/timesyncd.conf sed -i "s/^#FallbackNTP=/FallbackNTP=ntp.ubuntu.com/" /etc/systemd/timesyncd.conf systemctl restart systemd-timesyncd else echo -e "${RED}未找到timesyncd.conf文件,可能需要手动配置${NC}" fi echo -e "\n${GREEN}已设置NTP服务器为 $ntp${NC}" echo -e "\n${YELLOW}更新后的NTP状态:${NC}" timedatectl status read -n 1 -s -r -p "按任意键继续..." } # 主菜单 while true; do display_header echo -e "${BLUE}主菜单:${NC}" echo "1) 电源管理" echo "2) 更换软件源" echo "3) 更新软件包" echo "4) 更新系统" echo "5) 设置系统DNS" echo "6) 磁盘检查" echo "7) 资源监控" echo "8) 网络诊断" echo "9) 退出脚本" echo "10) 配置CPU电源管理P-State状态" echo "11) 配置CPU工作模式" echo "12) 通过SLAAC获取IPv6" echo "15) 设置NTP自动校时服务器" read -p "请输入选项 (1-12,15): " main_choice case $main_choice in 1) power_management ;; 2) change_repo ;; 3) update_packages ;; 4) update_system ;; 5) set_dns ;; 6) disk_check ;; 7) resource_monitor ;; 8) network_check ;; 9) echo -e "\n${GREEN}脚本已退出。${NC}" exit 0 ;; 10) configure_pstate ;; 11) configure_cpu_mode ;; 12) enable_slaac_ipv6 ;; 15) configure_ntp ;; *) echo -e "${RED}无效选项,请重新输入!${NC}" sleep 1 ;; esac done
整个过程测试没啥问题,也相当方便,有需要的可以自行保存即可!
问题未解决?付费解决问题加Q或微信 2589053300 (即Q号又微信号)右上方扫一扫可加博主微信
所写所说,是心之所感,思之所悟,行之所得;文当无敷衍,落笔求简洁。 以所舍,求所获;有所依,方所成!
赏
支付宝赞助
微信赞助


免责声明,若由于商用引起版权纠纷,一切责任均由使用者承担。
您必须遵守我们的协议,如您下载该资源,行为将被视为对《免责声明》全部内容的认可->联系老梁投诉资源 LaoLiang.Net部分资源来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。
敬请谅解! 侵权删帖/违法举报/投稿等事务联系邮箱:service@laoliang.net
意在交流学习,欢迎赞赏评论,如有谬误,请联系指正;转载请注明出处: » 基于CentOS可在Debian使用的“Linux系统管理脚本”