Files
argus/src/metric/tests/init-directories.sh
sundapeng c098f1d3ce dev_1.0.0_sundp 完成Metric模块及模块e2e测试 (#18)
Co-authored-by: sundapeng.sdp <sundapeng@hashdata.cn>
Reviewed-on: #18
Reviewed-by: xuxt <xuxt@zgclab.edu.cn>
Reviewed-by: yuyr <yuyr@zgclab.edu.cn>
Reviewed-by: huhy <husteryezi@163.com>
2025-10-11 17:15:06 +08:00

91 lines
2.6 KiB
Bash
Executable File

#!/bin/bash
# 初始化目录脚本
# 用于创建所有必要的数据目录并设置正确的权限
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$SCRIPT_DIR"
# 加载 .env 文件(如果存在)
if [ -f .env ]; then
echo "加载 .env 配置文件..."
source .env
fi
# 默认配置
FTP_UID=${FTP_UID:-2133}
FTP_GID=${FTP_GID:-2015}
PROMETHEUS_UID=${PROMETHEUS_UID:-2133}
PROMETHEUS_GID=${PROMETHEUS_GID:-2015}
GRAFANA_UID=${GRAFANA_UID:-2133}
GRAFANA_GID=${GRAFANA_GID:-2015}
DATA_ROOT=${DATA_ROOT:-./data}
echo "开始初始化目录结构..."
echo "数据目录: ${DATA_ROOT}"
echo ""
# 创建 FTP 目录
echo "创建 FTP 目录..."
sudo mkdir -p ${DATA_ROOT}/ftp/share
sudo chown -R ${FTP_UID}:${FTP_GID} ${DATA_ROOT}/ftp
sudo chmod -R 755 ${DATA_ROOT}/ftp
# 创建 Prometheus 目录
echo "创建 Prometheus 目录..."
sudo mkdir -p ${DATA_ROOT}/prometheus/{data,rules,targets}
# 创建默认的 targets 文件(先创建文件再改权限)
if [ ! -f "${DATA_ROOT}/prometheus/targets/node_exporter.json" ]; then
echo "创建默认 node_exporter targets..."
echo '[
{
"targets": [],
"labels": {
"job": "node"
}
}
]' | sudo tee ${DATA_ROOT}/prometheus/targets/node_exporter.json > /dev/null
fi
if [ ! -f "${DATA_ROOT}/prometheus/targets/dcgm_exporter.json" ]; then
echo "创建默认 dcgm_exporter targets..."
echo '[
{
"targets": [],
"labels": {
"job": "dcgm"
}
}
]' | sudo tee ${DATA_ROOT}/prometheus/targets/dcgm_exporter.json > /dev/null
fi
# 统一设置 Prometheus 目录权限
sudo chown -R ${PROMETHEUS_UID}:${PROMETHEUS_GID} ${DATA_ROOT}/prometheus
sudo chmod -R 755 ${DATA_ROOT}/prometheus
# 创建 Grafana 目录
echo "创建 Grafana 目录..."
sudo mkdir -p ${DATA_ROOT}/grafana/{data,logs,plugins,provisioning/datasources,provisioning/dashboards,data/sessions,data/dashboards,config}
sudo chown -R ${GRAFANA_UID}:${GRAFANA_GID} ${DATA_ROOT}/grafana
sudo chmod -R 755 ${DATA_ROOT}/grafana
# 创建公共配置目录
sudo mkdir -p ${DATA_ROOT}/etc
sudo chown -R ${FTP_UID}:${FTP_GID} ${DATA_ROOT}/etc
sudo chmod -R 755 ${DATA_ROOT}/etc
echo "目录初始化完成!"
echo ""
echo "目录结构:"
echo " ${DATA_ROOT}/"
echo " ├── ftp/ (UID:${FTP_UID}, GID:${FTP_GID})"
echo " ├── prometheus/ (UID:${PROMETHEUS_UID}, GID:${PROMETHEUS_GID})"
echo " ├── grafana/ (UID:${GRAFANA_UID}, GID:${GRAFANA_GID})"
echo " └── etc/ (UID:${FTP_UID}, GID:${FTP_GID})"
echo ""
echo "您现在可以运行 'docker-compose up -d' 来启动所有服务"