mirror of
https://github.com/snowykami/server-status-client.git
synced 2025-02-23 02:55:46 +08:00
Compare commits
7 Commits
87418edeea
...
7cbca85a60
Author | SHA1 | Date | |
---|---|---|---|
7cbca85a60 | |||
ce3a07e350 | |||
9160e7c4b4 | |||
8e2c5c24b8 | |||
c63d84106b | |||
0d7b7700de | |||
b5bf2c1de6 |
@ -57,8 +57,8 @@ _✨ 服务器状态 - 客户端 ✨_
|
||||
|
||||
### 命令
|
||||
|
||||
- `server-status <server> <token> <id> run` - 运行客户端
|
||||
- `server-status <server> <token> <id> rm` - 从服务端移除主机
|
||||
- `python main.py <server> <token> <id> run` - 运行客户端
|
||||
- `python.main.py <server> <token> <id> rm` - 从服务端移除主机
|
||||
|
||||
#### 可选项
|
||||
|
||||
@ -71,7 +71,7 @@ _✨ 服务器状态 - 客户端 ✨_
|
||||
#### 示例
|
||||
|
||||
```shell
|
||||
server_status https://status.liteyuki.icu 114514 myhost run -n "MyHost" --labels "标签1,标签2" --interval 5 --location "Chongqing" --link "https://example.com"
|
||||
python main.py https://status.liteyuki.icu 114514 myhost run -n "MyHost" --labels "标签1,标签2" --interval 5 --location "Chongqing" --link "https://example.com"
|
||||
```
|
||||
|
||||
## 📝 其他
|
||||
|
32
deploy-cn.sh
32
deploy-cn.sh
@ -10,40 +10,36 @@ fi
|
||||
|
||||
# check install dir
|
||||
install_dir="/opt"
|
||||
echo -n "Install directory? (default: $install_dir/server-status-client): " && read -r install_dir_input
|
||||
echo -n "安装目录? (默认: $install_dir/server-status-client): " && read -r install_dir_input
|
||||
if [ -n "$install_dir_input" ]; then
|
||||
install_dir="$install_dir_input"
|
||||
fi
|
||||
|
||||
# check server
|
||||
echo -n "Server? (required): " && read -r server
|
||||
echo -n "服务端地址? (必须): " && read -r server
|
||||
if [ -z "$server" ]; then
|
||||
echo "Server is required"
|
||||
echo "服务端地址是必须的"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# check token
|
||||
echo -n "Token? (required): " && read -r token
|
||||
if [ -z "$token" ]; then
|
||||
echo "Token is required"
|
||||
exit 1
|
||||
fi
|
||||
echo -n "令牌? (必须或留空): " && read -r token
|
||||
|
||||
# check hostname
|
||||
hostname=$(hostname)
|
||||
echo -n "Hostname? (default: $hostname): " && read -r hostname_input
|
||||
echo -n "此主机名? (默认: $hostname): " && read -r hostname_input
|
||||
if [ -n "$hostname_input" ]; then
|
||||
hostname="$hostname_input"
|
||||
fi
|
||||
|
||||
# labels
|
||||
echo -n "Labels? (space separated): " && read -r labels_input
|
||||
echo -n "标签们? (空格分隔): " && read -r labels_input
|
||||
if [ -n "$labels_input" ]; then
|
||||
labels="$labels_input"
|
||||
fi
|
||||
|
||||
# location
|
||||
echo -n "Location? (optional): " && read -r location_input
|
||||
echo -n "地理位置? (可选|自定义): " && read -r location_input
|
||||
if [ -n "$location_input" ]; then
|
||||
location="$location_input"
|
||||
fi
|
||||
@ -52,7 +48,7 @@ fi
|
||||
repo2="https://git.liteyuki.icu/snowykami/server-status-client"
|
||||
# try 1 if failed try 2
|
||||
git clone "$repo2" "$install_dir/server-status-client"
|
||||
cd "$install_dir/server-status-client" || { echo "Failed to clone repo"; exit 1; }
|
||||
cd "$install_dir/server-status-client" || { echo "克隆失败"; exit 1; }
|
||||
|
||||
# create venv
|
||||
python3 -m venv venv
|
||||
@ -60,22 +56,22 @@ python_exe="./venv/bin/python"
|
||||
|
||||
# check if venv is created
|
||||
if [ ! -f "$python_exe" ]; then
|
||||
echo "Failed to create venv"
|
||||
echo "创建虚拟环境失败"
|
||||
exit 1
|
||||
fi
|
||||
echo "venv created successfully"
|
||||
echo "虚拟环境创建成功"
|
||||
|
||||
# install the required packages
|
||||
echo "Installing the required packages"
|
||||
echo "正在安装依赖包..."
|
||||
$python_exe -m pip install pdm -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
|
||||
$python_exe -m pdm install
|
||||
|
||||
# create the systemd service
|
||||
echo "Creating the systemd service"
|
||||
echo "正在创建服务..."
|
||||
|
||||
# generate random id
|
||||
# shellcheck disable=SC2002
|
||||
id=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1)
|
||||
id=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 8 | head -n 1)
|
||||
|
||||
bash -c "cat <<EOF > /etc/systemd/system/server-status-client.service
|
||||
[Unit]
|
||||
@ -97,4 +93,4 @@ EOF"
|
||||
systemctl enable server-status-client
|
||||
systemctl start server-status-client
|
||||
|
||||
echo "server-status-client installed successfully"
|
||||
echo "安装完成,服务已启动"
|
@ -74,7 +74,7 @@ echo "Creating the systemd service"
|
||||
|
||||
# generate random id
|
||||
# shellcheck disable=SC2002
|
||||
id=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1)
|
||||
id=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 8 | head -n 1)
|
||||
|
||||
bash -c "cat <<EOF > /etc/systemd/system/server-status-client.service
|
||||
[Unit]
|
||||
|
@ -10,6 +10,24 @@ from server_status.timezone import get_timezone
|
||||
|
||||
excluded_partition_prefix = ("/var", "/boot", "/run", "/proc", "/sys", "/dev", "/tmp", "/snap")
|
||||
|
||||
os_name = "" # linux下为发行版名称,windows下为Windows
|
||||
os_version = "" # linux下为发行版版本,windows下为Windows版本
|
||||
try:
|
||||
# read /etc/os-release
|
||||
with open("/etc/os-release") as f:
|
||||
os_release = f.read()
|
||||
# 找到NAME=和VERSION=的行
|
||||
for line in os_release.split("\n"):
|
||||
if line.startswith("NAME="):
|
||||
os_name = line.split("=")[1].replace('"', '')
|
||||
elif line.startswith("VERSION_ID="):
|
||||
os_version = line.split("=")[1].replace('"', '')
|
||||
except FileNotFoundError:
|
||||
os_name = platform.system()
|
||||
os_version = platform.release()
|
||||
|
||||
print("Current OS:", os_name, os_version)
|
||||
|
||||
|
||||
def log(*args):
|
||||
# 在输出前加上时间
|
||||
@ -29,6 +47,7 @@ def get_network_speed(interval) -> tuple[int, int]:
|
||||
|
||||
|
||||
class Hardware:
|
||||
os_release: str = ""
|
||||
mem_total: int = psutil.virtual_memory().total
|
||||
mem_used: int = psutil.virtual_memory().used
|
||||
|
||||
@ -185,10 +204,10 @@ class Client:
|
||||
"id": self.client_id,
|
||||
"name": self.name,
|
||||
"os": {
|
||||
"name": platform.system(),
|
||||
"version": platform.version(),
|
||||
"machine": platform.machine(),
|
||||
"release": platform.release(),
|
||||
"name": platform.system(), # 系统类型 linux|windows|darwin
|
||||
"version": os_name + os_version, # 系统版本复杂描述 #1 SMP PREEMPT_DYNAMIC Fri Sep 13 10:42:50 UTC 2024 (5c05eeb)
|
||||
"machine": platform.machine(), # 机器类型 x86_64
|
||||
"release": os_version, # 系统版本
|
||||
},
|
||||
"labels": self.labels,
|
||||
"location": self.location,
|
||||
|
Loading…
x
Reference in New Issue
Block a user