add node exporter textfile collector script

get ip adress and info
get docker container info
write to .prom file for prometheus

asd
This commit is contained in:
lucas committed 2026-10-04 14:13:38 +00:00
1 parent ab80645034
commit b588773026
2 files changed
+109 -68

No files matched your search

+77 -68
View File
@@ -94,15 +94,15 @@ validate_args() {
normalize_language() {
case "${LANGUAGE,,}" in
de) LANGUAGE="de-DE" ;;
en) LANGUAGE="en-US" ;;
fr) LANGUAGE="fr-FR" ;;
es) LANGUAGE="es-ES" ;;
it) LANGUAGE="it-IT" ;;
de|de-de) LANGUAGE="de-DE" ;;
en|en-us) LANGUAGE="en-US" ;;
fr|fr-fr) LANGUAGE="fr-FR" ;;
es|es-es) LANGUAGE="es-ES" ;;
it|it-it) LANGUAGE="it-IT" ;;
*)
echo "Error: Languag* must be one of: de, en, fr, es, i*"
echo "Error: Language must be one of: de, en, fr, es, it"
exit 1
;*
;;
esac
}
# Defaults
@@ -125,7 +125,6 @@ fi
TMDB_BEARER_TOKEN="eyJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJlOTIwMzJlMDk1NmEzMWEyZjQ4MDA4NGI0MTg4OTIyZCIsIm5iZiI6MTc5MDQzMjc5NS42NjcsInN1YiI6IjZhYjdkNjFiZDY5NmI1ZGFjNGM5NDRkMyIsInNjb3BlcyI6WyJhcGlfcmVhZCJdLCJ2ZXJzaW9uIjoxfQ.IjddKtQ5X62A63kYslH24Pxg_TFCzu-QpGak_Pemgr8"
if [[ -z "$SEARCH_NAME" ]]; then
echo "Search name required"
exit 1
@@ -161,28 +160,38 @@ tmdb_get() {
# --------------------------------------------------
echo "Collect $TYPE Release Info"
TMDB_ID="${INPUT%/}" # remove trailing /
TMDB_ID="${TMDB_ID##*[}" # everything after last [
TMDB_ID="${TMDB_ID%]}" # remove trailing ]
SEARCH_JSON=$(curl -s --get \
-H "Authorization: Bearer ${TMDB_BEARER_TOKEN}" \
-H "accept: application/json" \
--data-urlencode "query=${SEARCH_NAME}" \
--data-urlencode "language=${LANGUAGE}" \
"${TMDB_API}/search/${TYPE}")
TOTAL_RESULTS=$(echo "$SEARCH_JSON" | jq -r '.total_results // 0')
if [[ "$TOTAL_RESULTS" -eq 0 ]]; then
echo "No results found for: $SEARCH_NAME"
exit 1
if [[ "$TMDB_ID" == "" ]]; then
echo Get Tmdb ID from search
SEARCH_JSON=$(curl -s --get \
-H "Authorization: Bearer ${TMDB_BEARER_TOKEN}" \
-H "accept: application/json" \
--data-urlencode "query=${SEARCH_NAME}" \
--data-urlencode "language=${LANGUAGE}" \
"${TMDB_API}/search/${TYPE}")
TOTAL_RESULTS=$(echo "$SEARCH_JSON" | jq -r '.total_results // 0')
if [ "$TOTAL_RESULTS" -gt 0 ]; then
echo Title Found:
echo "$SEARCH_JSON" | jq -r '.results[] | .title // .name'
fi
if [[ "$TOTAL_RESULTS" -eq 0 ]]; then
echo "No results found for: $SEARCH_NAME"
fi
TMDB_ID=$(echo "$SEARCH_JSON" | jq -r '.results[0].id')
if [[ "$TMDB_ID" == "" ]]; then
echo "Nothing could be found"
fi
fi
TMDB_ID=$(echo "$SEARCH_JSON" | jq -r '.results[0].id')
# --------------------------------------------------
# Details
# --------------------------------------------------
echo "Collect $TYPE Release Details"
echo "Collect $TYPE Release Details for Tmdb ID $TMDB_ID"
DETAILS=$(tmdb_get \
"${TMDB_API}/${TYPE}/${TMDB_ID}?language=de-DE")
@@ -233,16 +242,6 @@ if [[ -n "$BACKDROP_PATH" ]]; then
BACKDROP_URL="https://image.tmdb.org/t/p/original${BACKDROP_PATH}"
fi
mkdir -p "$INPUT/Screens"
if [[ "$POSTER_URL" != "N/A" ]]; then
curl -s -L "$POSTER_URL" \
-o "$INPUT/Screens/cover.jpg"
fi
if [[ "$BACKDROP_URL" != "N/A" ]]; then
curl -s -L "$BACKDROP_URL" \
-o "$INPUT/Screens/backdrop.jpg"
fi
# --data-urlencode "api_key=AB" \
# "https://api.themoviedb.org/3/search/tv"
echo "Collecting media info..."
@@ -285,7 +284,7 @@ TOTAL_SIZE=$(du -sh "$INPUT" | cut -f1)
echo Generate nfo file
cat > "${NAME}.nfo" <<EOF
cat > "${INPUT}/${NAME}.nfo" <<EOF
==================================================
RELEASE INFORMATION
==================================================
@@ -403,40 +402,50 @@ Created With : mktorrent
Generated on: $(date)
==================================================
EOF
SCREEN_DIR="$INPUT/Screens"
mkdir -p "$SCREEN_DIR"
# Videolänge in Sekunden
DURATION=$(ffprobe -v error \
-show_entries format=duration \
-of default=noprint_wrappers=1:nokey=1 \
"$MEDIA_FILE")
# 5 gleichmäßig verteilte Screenshots (10%-90%)
for i in {1..5}; do
PERCENT=$((i * 100 / 6))
TIMESTAMP=$(awk "BEGIN {print $DURATION * $PERCENT / 100}")
ffmpeg -y \
-ss "$TIMESTAMP" \
-i "$MEDIA_FILE" \
-frames:v 1 \
-q:v 2 \
"$SCREEN_DIR/screen_$i.png" \
>/dev/null 2>&1
done
echo "Screenshots erstellt in: $SCREEN_DIR"
echo "Created:"
echo " ${NAME}.torrent"
echo " ${NAME}.nfo"
if [[ "$SKIP_TORRENT_CREATION" == "--skip" ]]; then
TORRENT_NAME="$(basename "$MEDIA_FILE").torrent"
if $SKIP_TORRENT_CREATION ; then
echo
echo Skip torrent cration
else
mkdir -p "$INPUT/Screens"
if [[ "$POSTER_URL" != "N/A" ]]; then
curl -s -L "$POSTER_URL" \
-o "$INPUT/Screens/cover.jpg"
fi
if [[ "$BACKDROP_URL" != "N/A" ]]; then
curl -s -L "$BACKDROP_URL" \
-o "$INPUT/Screens/backdrop.jpg"
fi
SCREEN_DIR="$INPUT/Screens"
mkdir -p "$SCREEN_DIR"
# Videolänge in Sekunden
DURATION=$(ffprobe -v error \
-show_entries format=duration \
-of default=noprint_wrappers=1:nokey=1 \
"$MEDIA_FILE")
# 5 gleichmäßig verteilte Screenshots (10%-90%)
for i in {1..5}; do
PERCENT=$((i * 100 / 6))
TIMESTAMP=$(awk "BEGIN {print $DURATION * $PERCENT / 100}")
ffmpeg -y \
-ss "$TIMESTAMP" \
-i "$MEDIA_FILE" \
-frames:v 1 \
-q:v 2 \
"$SCREEN_DIR/screen_$i.png" \
>/dev/null 2>&1
done
echo "Screenshots erstellt in: $SCREEN_DIR"
echo "Created:"
echo " ${NAME}.torrent"
echo " ${NAME}.nfo"
echo
echo "Creating torrent..."
@@ -444,7 +453,7 @@ else
-p \
-l "$PIECE_SIZE" \
-a "$TRACKER" \
-o "${NAME}.torrent" \
-o "${TORRENT_NAME}" \
"$INPUT"
fi
@@ -452,5 +461,5 @@ for f in "$INPUT"/Screens/*; do
[[ -e "$f" ]] && FILES+=("$f")
done
ssh lucas@vivohost "mkdir -p \"Torrents/${NAME}\"" 
scp "${NAME}.torrent" "${NAME}.nfo" lucas@vivohost:"Torrents/${NAME}/"
scp "${TORRENT_NAME}" "$INPUT/${NAME}.nfo" lucas@vivohost:"Torrents/${NAME}/"
scp -r "$INPUT/Screens" lucas@vivohost:"Torrents/${NAME}/"