代码优化网站排名wordpress 多备份
一、系统信息类(3个)
- 全面系统信息查看
#!/bin/bash 
系统信息综合查看
echo -e “\n===== 系统基础信息 ="
 uname -a # 内核版本
 cat /etc/os-release | head -n 3 # 系统版本
 hostname -I # 主机IP
 echo -e "\n= 资源使用 ="
 free -h # 内存状态
 df -hT # 磁盘分区
 top -bn 1 | head -n 10 # 进程占用
 echo -e "\n= 网络与服务 =====”
 ifconfig | grep "inet " # 网络接口
 netstat -antp | head -n 5 # 网络连接
 ps -ef | grep [s]ervice # 关键服务进程
 2. 硬件信息检测
 #!/bin/bash
硬件信息查看
echo -e “\n===== CPU信息 ="
 lscpu | grep “Model name|CPU(s)”
 echo -e "\n= 内存信息 ="
 dmidecode -t memory | grep -E “Size|Type” | head -6
 echo -e "\n= 磁盘信息 ="
 fdisk -l | grep “Disk /dev”
 lsblk -f # 磁盘挂载详情
 echo -e "\n= 显卡信息 =====”
 lspci | grep -i vga
 3. 系统运行时间统计
 #!/bin/bash
系统运行时长与负载
echo -e “\n系统已运行: ( u p t i m e − p ) " e c h o − e " 当 前 负 载 : (uptime -p)" echo -e "当前负载: (uptime−p)"echo−e"当前负载:(uptime | awk -F ‘load average:’ ‘{print $2}’)”
 echo -e “\n最近登录用户:”
 last -n 5 | head -n 4 # 最近登录记录
 echo -e “\n当前登录用户:”
 who
 二、环境部署类(4个)
- LNMP环境部署(CentOS)
#!/bin/bash 
LNMP环境部署(CentOS)
yum update -y
 yum install -y nginx mariadb-server php-fpm php-mysqlnd
 systemctl start nginx mariadb
 systemctl enable nginx mariadb
配置Nginx
cat > /etc/nginx/conf.d/wordpress.conf << EOF
 server {
 listen 80;
 server_name example.com;
 root /usr/share/nginx/html;
 index index.php index.html;
 location ~ .php$ {
 fastcgi_pass 127.0.0.1:9000;
 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
 include fastcgi_params;
 }
 }
 EOF
 nginx -t && systemctl restart nginx
 5. LAMP环境部署(Ubuntu)
 #!/bin/bash
LAMP环境部署(Ubuntu)
apt update && apt upgrade -y
 apt install -y apache2 mysql-server php php-mysql
 systemctl start apache2 mysql
 systemctl enable apache2 mysql
测试PHP
echo “<?php phpinfo(); ?>” > /var/www/html/info.php
 echo “LAMP环境已部署,访问http://服务器IP/info.php测试”
 6. Docker快速安装
 #!/bin/bash
Docker一键安装
curl -fsSL https://get.docker.com -o get-docker.sh
 sh get-docker.sh
 systemctl start docker
 systemctl enable docker
添加当前用户到docker组(避免sudo)
usermod -aG docker $USER
 echo “Docker安装完成,重启后生效”
 7. Nginx虚拟主机创建
 #!/bin/bash
Nginx虚拟主机创建
read -p “请输入域名:” domain
 read -p “请输入网站根目录:” webroot
mkdir -p $webroot
 chown -R nginx:nginx $webroot
cat > /etc/nginx/conf.d/$domain.conf << EOF
 server {
 listen 80;
 server_name $domain;
 root KaTeX parse error: Can't use function '\.' in math mode at position 57: … location ~ \̲.̲php {
 fastcgi_pass 127.0.0.1:9000;
 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
 include fastcgi_params;
 }
 }
 EOF
nginx -t && systemctl restart nginx
 echo “虚拟主机已创建,域名: d o m a i n , 根 目 录 : domain,根目录: domain,根目录:webroot”
 三、服务管理类(4个)
- 服务状态批量检查
#!/bin/bash 
服务状态检查脚本
services=(“nginx” “mysql” “docker” “sshd”)
 echo -e “\n===== 服务状态检查 =====”
 for service in ${services[@]}; do
 if systemctl status KaTeX parse error: Expected 'EOF', got '&' at position 9: service &̲> /dev/null; th…(systemctl is-active  s e r v i c e ) e c h o " service) echo " service)echo"service: [KaTeX parse error: Expected group after '^' at position 8: {status^̲^}]" else …service: [未安装]"
 fi
 done
 9. 服务一键启停脚本
 #!/bin/bash
服务快速启停工具
echo -e “\n请选择操作:”
 echo “1. 启动所有服务”
 echo “2. 停止所有服务”
 echo “3. 重启所有服务”
 read -p “请输入选项(1-3):” choice
services=(“nginx” “mysql” “php-fpm”)
case $choice in
 1) for service in ${services[@]}; do systemctl start $service; done ;;
 2) for service in ${services[@]}; do systemctl stop $service; done ;;
 3) for service in ${services[@]}; do systemctl restart $service; done ;;
 *) echo “无效选项” && exit 1 ;;
 esac
echo -e “\n操作完成,当前服务状态:”
 for service in ${services[@]}; do systemctl status $service | head -n 2; done
 10. 防火墙基础配置
 #!/bin/bash
Firewalld防火墙配置
systemctl start firewalld
 systemctl enable firewalld
echo -e “\n请输入需要开放的端口(用空格分隔,如’80 443 22’):”
 read -a ports
for port in  p o r t s [ @ ] ; d o f i r e w a l l − c m d − − p e r m a n e n t − − a d d − p o r t = {ports[@]}; do firewall-cmd --permanent --add-port= ports[@];dofirewall−cmd−−permanent−−add−port=port/tcp
 done
firewall-cmd --reload
 echo -e “\n防火墙已配置,开放端口:${ports[*]}”
 11. 日志服务管理
 #!/bin/bash
系统日志管理脚本
echo -e “\n===== 日志管理工具 =====”
 echo “1. 清理所有日志”
 echo “2. 清理指定天数前的日志”
 echo “3. 查看日志占用”
 read -p “请选择操作(1-3):” choice
case  c h o i c e i n 1 ) f i n d / v a r / l o g − t y p e f − e x e c t r u n c a t e − s 0 e c h o " 所 有 日 志 已 清 空 " ; ; 2 ) r e a d − p " 请 输 入 天 数 ( 如 30 ) : " d a y s f i n d / v a r / l o g − t y p e f − m t i m e + choice in 1) find /var/log -type f -exec truncate -s 0 {} \; echo "所有日志已清空" ;; 2) read -p "请输入天数(如30):" days find /var/log -type f -mtime + choicein1)find/var/log−typef−exectruncate−s0echo"所有日志已清空";;2)read−p"请输入天数(如30):"daysfind/var/log−typef−mtime+days -exec truncate -s 0 {} ;
 echo “$days天前的日志已清空”
 ;;
 3)
 du -sh /var/log/*
 ;;
 *) echo “无效选项” && exit 1 ;;
 esac
 四、系统维护类(4个)
- 磁盘空间清理
#!/bin/bash 
磁盘空间清理脚本
echo -e “\n===== 开始清理系统 =====”
 echo “1. 清理临时文件”
 echo “2. 清理包缓存”
 echo “3. 清理日志文件”
 echo “4. 全部清理”
 read -p “请选择操作(1-4):” choice
case $choice in
 1) rm -rf /tmp/* /var/tmp/* ;;
 2) yum clean all || apt clean ;;
 3) find /var/log -type f -mtime +30 -exec truncate -s 0 {} ; ;;
 4)
 rm -rf /tmp/* /var/tmp/*
 yum clean all || apt clean
 find /var/log -type f -mtime +30 -exec truncate -s 0 {} ;
 ;;
 *) echo “无效选项” && exit 1 ;;
 esac
echo -e “\n清理完成,当前磁盘使用:”
 df -h
 13. 系统优化脚本(基础版)
 #!/bin/bash
系统基础优化脚本
echo -e “\n===== 系统优化开始 =====”
关闭不必要的服务
systemctl stop postfix && systemctl disable postfix
调整文件描述符
cat >> /etc/security/limits.conf << EOF
-  
soft nofile 65536 -  
hard nofile 65536 
EOF
优化内核参数
cat > /etc/sysctl.d/99-optimize.conf << EOF
 net.ipv4.tcp_fin_timeout = 2
 net.ipv4.tcp_keepalive_time = 600
 net.ipv4.tcp_max_syn_backlog = 16384
 net.ipv4.ip_local_port_range = 1024 65000
 EOF
 sysctl -p
 echo -e “\n系统优化完成,部分设置需重启生效”
 14. 定时任务备份脚本
 #!/bin/bash
数据定时备份脚本
backup_dir="/backup/$(date +%Y%m%d)"
 mkdir -p $backup_dir
备份数据库(需提前设置MySQL密码)
read -p “请输入MySQL密码:” mysql_pass
 mysqldump -u root -p$mysql_pass --all-databases > $backup_dir/all_databases.sql
备份网站目录
web_dirs=("/var/www/html" “/etc/nginx/conf.d”)
 for dir in ${web_dirs[@]}; do
 if [ -d $dir ]; then
 tar -czf  b a c k u p d i r backup_dir backupdir(basename $dir).tar.gz $dir
 fi
 done
保留7天备份
find /backup -type d -mtime +7 -exec rm -rf {} ;
echo -e “\n备份完成,路径:$backup_dir”
 echo “7天前的备份已清理”
 15. 系统垃圾文件清理
 #!/bin/bash
系统垃圾文件清理
echo -e “\n===== 清理系统垃圾 =====”
清理yum缓存
if command -v yum &> /dev/null; then
 yum clean all
 echo “Yum缓存已清理”
清理apt缓存
elif command -v apt &> /dev/null; then
 apt clean
 echo “Apt缓存已清理”
 fi
清理编译缓存
rm -rf /usr/src/debug/*
 rm -rf /tmp/*~
清理旧内核(CentOS)
if [ -f /etc/redhat-release ]; then
 package-cleanup --oldkernels --count=1
 echo “旧内核已清理,保留最新1个”
 fi
echo -e “\n垃圾清理完成”
 五、安全与监控类(4个)
- 简单入侵检测脚本
#!/bin/bash 
简单入侵检测脚本
echo -e “\n===== 系统安全检查 =====”
 echo “1. 异常登录检查”
 echo “2. 异常用户检查”
 echo “3. 端口扫描”
 echo “4. 全部检查”
 read -p “请选择操作(1-4):” choice
case $choice in
 1)
 echo “最近异常登录:”
 last | grep -i “failed” | head -10
 ;;
 2)
 echo “非标准用户:”
 grep -vE “^(root|bin|daemon|sys|sync|shutdown|halt|mail|operator|games|nobody)” /etc/passwd
 ;;
 3)
 echo “开放端口:”
 netstat -antp | grep LISTEN
 ;;
 4)
 echo “最近异常登录:”
 last | grep -i “failed” | head -10
 echo -e “\n非标准用户:”
 grep -vE “^(root|bin|daemon|sys|sync|shutdown|halt|mail|operator|games|nobody)” /etc/passwd
 echo -e “\n开放端口:”
 netstat -antp | grep LISTEN
 ;;
 *) echo “无效选项” && exit 1 ;;
 esac
 17. 监控服务安装脚本
 #!/bin/bash
监控服务安装(Prometheus+Grafana)
echo -e “\n===== 安装监控服务 =====”
安装依赖
yum install -y wget unzip || apt install -y wget unzip
下载Prometheus
wget https://github.com/prometheus/prometheus/releases/download/v2.45.0/prometheus-2.45.0.linux-amd64.tar.gz
 tar -xzf prometheus-2.45.0.linux-amd64.tar.gz -C /opt/
 ln -s /opt/prometheus-2.45.0.linux-amd64 /opt/prometheus
下载Grafana
wget https://dl.grafana.com/oss/release/grafana-10.1.0-1.x86_64.rpm
 yum install -y grafana-10.1.0-1.x86_64.rpm || dpkg -i grafana-10.1.0-1.x86_64.deb
启动服务
systemctl start prometheus grafana-server
 systemctl enable prometheus grafana-server
echo -e “\n监控服务已安装:”
 echo “Prometheus访问:http://服务器IP:9090”
 echo “Grafana访问:http://服务器IP:3000(默认账号密码:admin/admin)”
 18. 防火墙日志审计
 #!/bin/bash
防火墙日志审计脚本
echo -e “\n===== 防火墙日志分析 =====”
检查防火墙日志是否启用
if grep -q “firewalld” /etc/rsyslog.conf; then
 echo “防火墙日志已启用,分析最近100条记录:”
 grep “firewalld” /var/log/messages | tail -n 100
 else
 echo “防火墙日志未启用,是否开启?(y/n)”
 read -p “选择:” choice
 if [ $choice == “y” ]; then
 echo “local0.* /var/log/firewalld.log” >> /etc/rsyslog.conf
 systemctl restart rsyslog
 echo “防火墙日志已启用,重启后生效”
 fi
 fi
 19. 系统安全加固脚本(基础版)
 #!/bin/bash
系统基础安全加固
echo -e “\n===== 系统安全加固开始 =====”
禁止root远程登录
sed -i ‘s/PermitRootLogin yes/PermitRootLogin no/g’ /etc/ssh/sshd_config
限制SSH登录失败次数
sed -i ‘s/#MaxAuthTries 6/MaxAuthTries 3/g’ /etc/ssh/sshd_config
关闭IPv6(可选)
echo “net.ipv6.conf.all.disable_ipv6 = 1” >> /etc/sysctl.conf
禁止空密码
passwd -d “” 2>/dev/null
加强密码策略(CentOS)
if [ -f /etc/redhat-release ]; then
 authconfig --passminlen=8 --passminclasses=3 --update
 fi
 systemctl restart sshd
 echo -e “\n安全加固完成,建议创建普通用户并使用sudo”
 重要使用提醒:
-  
脚本执行权限:通过chmod +x 脚本名.sh赋予执行权限,用sudo bash 脚本名.sh运行(需root权限)。
 -  
环境适配:CentOS/Ubuntu的包管理命令(yum/apt)不同,部分脚本需手动修改。
 -  
风险意识:涉及系统修改的脚本(如内核优化、日志清理)可能影响服务,务必先备份数据。
 -  
定制需求:若需特定功能(如Redis部署、Python环境搭建),可进一步说明场景,避免盲目使用“一键脚本”。
 
Linux管理的核心是“理解每一步操作”,建议将脚本拆分成小功能逐步执行,避免因一键脚本的不可控性导致问题哦!
