رفع الملفات إلى "/"

هذا الالتزام موجود في:
2025-10-04 14:32:44 +00:00
التزام da5a008931
4 ملفات معدلة مع 492 إضافات و0 حذوفات

42
monitor (copy 1).sh Normal file
عرض الملف

@@ -0,0 +1,42 @@
#!/usr/bin/env bash
# monitor.sh — íÑÕÏ api.log áÇßÊÔÇÝ ÃÎØÇÁ 4xx/5xx Ãæ ßáãÇÊ failed/timeout
# æíÑÓá JSON Åáì CLOUD endpoint ÚÈÑ curl
LOGFILE="./api.log"
CLOUD_ENDPOINT="${CLOUD_ENDPOINT:-https://example.com/alert}"
if [ ! -f "$LOGFILE" ]; then
echo "api.log not found, creating..."
touch "$LOGFILE"
fi
tail -n0 -F "$LOGFILE" | while read -r line; do
echo "$line" | grep -E "ERROR|4[0-9]{2}|5[0-9]{2}|failed|timeout" >/dev/null 2>&1
if [ $? -eq 0 ]; then
ts=$(date --iso-8601=seconds)
ip=$(hostname -I 2>/dev/null | awk '{print $1}')
cpu_line=$(top -bn1 | grep "Cpu(s)" 2>/dev/null || top -bn1 | head -n 5 | tail -n 1)
ram_line=$(free -m | awk 'NR==2{printf "%sMB/%sMB (used/total)", $3,$2}')
disk_line=$(df -h / | awk 'NR==2{print $3" used of " $2 " (" $5 " used)"}')
log_excerpt="$line"
# ÓæöøÑ JSON (ÇÍÐÑ ÚáÇãÇÊ ÇáÇÞÊÈÇÓ)
payload=$(cat <<EOF
{
"timestamp": "$ts",
"server_ip": "$ip",
"cpu": "$(echo "$cpu_line" | sed 's/\"/'"'"'/g')",
"ram": "$ram_line",
"disk": "$disk_line",
"log_line": "$(echo "$log_excerpt" | sed 's/\"/'"'"'/g')"
}
EOF
)
echo "[$ts] ALERT: sending payload to $CLOUD_ENDPOINT"
curl -s -X POST -H "Content-Type: application/json" -d "$payload" "$CLOUD_ENDPOINT" || {
echo "[$(date --iso-8601=seconds)] Failed to send alert" >&2
}
fi
done