2025-07-30 16:53:41 +08:00
|
|
|
|
# 阿里云服务器信息查询工具
|
|
|
|
|
|
|
|
|
|
|
|
这是一个Python脚本,用于查询一个或多个阿里云账号下的所有ECS(云服务器)和轻量应用服务器的详细信息,并将结果统一导出到一个CSV文件中。
|
|
|
|
|
|
|
|
|
|
|
|
## 功能特性
|
|
|
|
|
|
|
|
|
|
|
|
- **多账号支持**: 可同时查询多个阿里云账号。
|
|
|
|
|
|
- **全面的信息**: 获取服务器的实例ID、实例名称、公网/内网IP、配置、创建时间及到期时间。
|
|
|
|
|
|
- **CSV导出**: 将所有查询结果保存到一个带时间戳的CSV文件中,便于归档和分析。
|
|
|
|
|
|
- **错误处理**: 自动跳过不支持或无法访问的区域,确保脚本的健壮性。
|
|
|
|
|
|
- **现代化的环境管理**: 使用 `uv` 进行快速的环境设置和依赖管理。
|
|
|
|
|
|
|
|
|
|
|
|
## 项目结构
|
|
|
|
|
|
|
|
|
|
|
|
```
|
2025-07-30 18:10:44 +08:00
|
|
|
|
showAliServer/
|
2025-07-30 16:53:41 +08:00
|
|
|
|
├── .venv/ # uv创建的虚拟环境目录
|
|
|
|
|
|
├── aliyun_servers_*.csv # 脚本生成的CSV结果文件
|
|
|
|
|
|
├── config.json # 你的账号配置文件 (需要手动创建)
|
|
|
|
|
|
├── config.json.example # 账号配置文件模板
|
|
|
|
|
|
├── list_aliyun_servers.py # 主程序脚本
|
2025-07-30 18:10:44 +08:00
|
|
|
|
└── requirements.txt # 项目依赖列表```
|
2025-07-30 16:53:41 +08:00
|
|
|
|
|
|
|
|
|
|
## 环境设置与运行 (使用 uv)
|
|
|
|
|
|
|
|
|
|
|
|
本项目推荐使用 `uv`,一个极速的Python包安装和解析器,来管理虚拟环境和依赖。
|
|
|
|
|
|
|
|
|
|
|
|
### 1. 安装 uv
|
|
|
|
|
|
|
|
|
|
|
|
如果您还没有安装 `uv`,请根据您的操作系统执行相应的命令:
|
|
|
|
|
|
|
2025-07-30 18:10:44 +08:00
|
|
|
|
**macOS / Linux:**
|
|
|
|
|
|
```bash
|
2025-07-30 16:53:41 +08:00
|
|
|
|
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
**Windows:**
|
|
|
|
|
|
```powershell
|
|
|
|
|
|
irm https://astral.sh/uv/install.ps1 | iex
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 2. 创建虚拟环境
|
|
|
|
|
|
|
2025-07-30 18:10:44 +08:00
|
|
|
|
**进入 `showAliServer` 目录**,然后使用 `uv` 创建一个名为 `.venv` 的虚拟环境。
|
2025-07-30 16:53:41 +08:00
|
|
|
|
|
|
|
|
|
|
```bash
|
2025-07-30 18:10:44 +08:00
|
|
|
|
cd showAliServer
|
2025-07-30 16:53:41 +08:00
|
|
|
|
uv venv
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 3. 安装依赖
|
|
|
|
|
|
|
|
|
|
|
|
`uv` 会自动识别 `requirements.txt` 文件。执行以下命令来安装所有必需的Python库:
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
uv pip install -r requirements.txt
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 4. 配置账号信息
|
|
|
|
|
|
|
|
|
|
|
|
将配置文件模板 `config.json.example` 复制一份,并重命名为 `config.json`。
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# Linux/macOS
|
|
|
|
|
|
cp config.json.example config.json
|
|
|
|
|
|
|
|
|
|
|
|
# Windows
|
|
|
|
|
|
copy config.json.example config.json
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
然后,编辑 `config.json` 文件,填入您真实的阿里云 `AccessKey ID` 和 `AccessKey Secret`。可以配置多个账号。
|
|
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
|
[
|
|
|
|
|
|
{
|
|
|
|
|
|
"name": "我的主账号",
|
|
|
|
|
|
"access_key_id": "YOUR_ACCESS_KEY_ID_1",
|
|
|
|
|
|
"access_key_secret": "YOUR_ACCESS_KEY_SECRET_1"
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"name": "我的测试账号",
|
|
|
|
|
|
"access_key_id": "YOUR_ACCESS_KEY_ID_2",
|
|
|
|
|
|
"access_key_secret": "YOUR_ACCESS_KEY_SECRET_2"
|
|
|
|
|
|
}
|
|
|
|
|
|
]
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 5. 运行脚本
|
|
|
|
|
|
|
2025-07-30 18:10:44 +08:00
|
|
|
|
确保您仍处于 `showAliServer` 目录下,并已激活虚拟环境。
|
2025-07-30 16:53:41 +08:00
|
|
|
|
|
|
|
|
|
|
**激活环境 (只需执行一次):**
|
|
|
|
|
|
|
|
|
|
|
|
- **macOS / Linux:** `source .venv/bin/activate`
|
|
|
|
|
|
- **Windows (CMD):** `.venv\Scripts\activate.bat`
|
|
|
|
|
|
- **Windows (PowerShell):** `.venv\Scripts\Activate.ps1`
|
|
|
|
|
|
|
|
|
|
|
|
**运行脚本:**
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
python list_aliyun_servers.py
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2025-07-30 18:10:44 +08:00
|
|
|
|
脚本执行完毕后,您会在 `showAliServer` 目录下找到一个名为 `aliyun_servers_YYYYMMDD_HHMMSS.csv` 的文件,其中包含了所有服务器的信息。
|