Spaces:
Paused
Paused
| # --- 配置区 --- | |
| # Alist 服务器地址 (保持不变) | |
| ALIST_URL="https://o.114514heihei.eu.org/od" | |
| # 本地日志文件路径 | |
| LOG_FILE="/app/size_monitor.log" | |
| # 上传到 Alist 的路径和文件名 | |
| REMOTE_PATH="/size_monitor.log" | |
| # 监控和上传的间隔时间(秒) | |
| SLEEP_INTERVAL=300 # 5分钟 | |
| # --- 脚本主逻辑 --- | |
| echo "--- Starting Filesystem Monitor and Uploader ---" > $LOG_FILE | |
| echo "--- To enable uploads, set the ALIST_TOKEN environment variable. ---" >> $LOG_FILE | |
| while true; do | |
| # --- 1. 记录大小 --- | |
| TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S') | |
| echo "--- Log entry at $TIMESTAMP ---" >> $LOG_FILE | |
| # 监控 /app 目录下所有子目录的大小 | |
| du -sh /app/* >> $LOG_FILE | |
| echo "" >> $LOG_FILE | |
| # --- 2. 上传日志 (检查环境变量是否存在) --- | |
| if [ -n "$ALIST_TOKEN" ]; then | |
| echo "Uploading log file to Alist server at $TIMESTAMP..." | |
| # 使用 curl 调用 Alist API 上传文件 | |
| # -s: 静默模式 | |
| # -o /dev/null: 丢弃标准输出 | |
| # -w "%{http_code}": 只输出 HTTP 状态码 | |
| HTTP_STATUS=$(curl -s -o /dev/null -w "%{http_code}" -X PUT \ | |
| --url "$ALIST_URL/api/fs/put" \ | |
| -H "Authorization: $ALIST_TOKEN" \ | |
| -H "File-Path: $REMOTE_PATH" \ | |
| -T "$LOG_FILE") | |
| if [ "$HTTP_STATUS" -eq 200 ]; then | |
| echo "Log file uploaded successfully (HTTP Status: $HTTP_STATUS)." | |
| else | |
| echo "Error: Failed to upload log file (HTTP Status: $HTTP_STATUS)." | |
| fi | |
| else | |
| echo "Warning: ALIST_TOKEN environment variable is not set. Skipping upload." | |
| fi | |
| # --- 3. 等待 --- | |
| sleep $SLEEP_INTERVAL | |
| done |