一、基础系统 & 安全基线 & 常用工具
我个人使用的操作系统是 Ubuntu 24 ,以下各种命令可以直接复制运行。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| apt update apt -y upgrade
timedatectl set-timezone Asia/Shanghai
apt -y install \ ca-certificates \ curl wget \ git \ htop \ unzip zip \ vim \ net-tools \ lsof \ ufw \ fail2ban \ gnupg \ lsb-release
ufw allow OpenSSH ufw allow 80/tcp ufw allow 443/tcp ufw --force enable
fallocate -l 2G /swapfile chmod 600 /swapfile mkswap /swapfile echo '/swapfile none swap sw 0 0' | tee -a /etc/fstab swapon -a
|
二、Java 17 + MySQL + Docker / Compose + 日志控制
做 Java Web 服务,将最小的必要依赖安装好。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
|
apt -y install openjdk-17-jdk-headless maven
java -version mvn -v
apt -y install mysql-server
systemctl enable --now mysql
mysql_secure_installation
curl -fsSL https://get.docker.com | sh
usermod -aG docker root || true
mkdir -p /srv/docker mkdir -p /etc/docker
cat >/etc/docker/daemon.json <<'JSON' { "data-root": "/srv/docker", "log-driver": "json-file", "log-opts": { "max-size": "10m", "max-file": "3" } } JSON
systemctl daemon-reload systemctl restart docker
apt -y install docker-compose-plugin
docker version || echo "Docker 有问题,后面我们再查" docker compose version || echo "docker compose 插件有问题"
mkdir -p /etc/systemd/journald.conf.d cat >/etc/systemd/journald.conf.d/size.conf <<'CONF' [Journal] SystemMaxUse=200M SystemMaxFileSize=50M CONF
systemctl restart systemd-journald
|
三、检查服务器各种情况
执行完后可直接扔给 AI 帮忙评估。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105
| echo "==================== 1. 基本 OS / 内核信息 ====================" uname -a echo lsb_release -a 2>/dev/null || cat /etc/os-release echo hostnamectl echo echo "当前时间与时区:" date timedatectl echo echo "开机时长:" uptime
echo echo "==================== 2. CPU 信息 ====================" lscpu echo echo "逻辑 CPU 个数:" nproc --all
echo echo "==================== 3. 内存信息 ====================" free -h echo echo "详细 /proc/meminfo(前 20 行):" head -n 20 /proc/meminfo
echo echo "==================== 4. 磁盘与文件系统 ====================" echo "块设备与分区:" lsblk -f echo echo "挂载点与使用率:" df -hT echo echo "inode 使用情况:" df -i
echo echo "分区详细信息(需要 sudo):" sudo fdisk -l 2>/dev/null || echo "fdisk -l 运行失败(可能权限不足或无传统磁盘)"
echo echo "==================== 5. 硬件 / 虚拟化信息 ====================" echo "虚拟化检测:" systemd-detect-virt echo echo "简要硬件信息(需要 sudo,可能稍微等几秒):" sudo lshw -short 2>/dev/null || echo "lshw 未安装或权限不足,可用: sudo apt install lshw"
echo echo "PCI 设备(比如网卡、存储控制器):" lspci 2>/dev/null || echo "lspci 未安装,可用: sudo apt install pciutils"
echo echo "USB 设备:" lsusb 2>/dev/null || echo "lsusb 未安装,可用: sudo apt install usbutils"
echo echo "==================== 6. 网络信息 ====================" echo "网卡与 IP:" ip addr echo echo "路由表:" ip route echo echo "监听的端口(当前应该几乎为空):" ss -tulpen
echo echo "==================== 7. 进程与资源占用快照 ====================" echo "前 15 个最吃 CPU 的进程:" ps aux --sort=-%cpu | head -n 15 echo echo "前 15 个最吃内存的进程:" ps aux --sort=-%mem | head -n 15
echo echo "==================== 8. 日志与系统健康快照 ====================" echo "最近 50 行系统日志:" sudo journalctl -n 50 --no-pager 2>/dev/null || echo "journalctl 命令失败(可能权限不足)"
echo echo "==================== 9. 已安装的关键软件(docker 等) ====================" echo "Docker 版本:" docker --version 2>/dev/null || echo "docker 尚未安装" echo echo "Java 版本:" java -version 2>&1 || echo "java 尚未安装" echo echo "MySQL 客户端:" mysql --version 2>/dev/null || echo "mysql 客户端尚未安装"
echo echo "==================== 10. 磁盘 I/O 与文件描述符限制 ====================" echo "磁盘 I/O 调度与队列:" cat /sys/block/*/queue/scheduler 2>/dev/null || echo "无法读取磁盘 I/O 调度器信息(可能是云盘虚拟设备)" echo echo "当前用户的文件句柄限制:" ulimit -n echo echo "系统级最大文件句柄数:" cat /proc/sys/fs/file-max
|