# --- 1. SYSTEM & NETZWERK ---
export EDITOR=nano
# IP-Logik (bleibt wie sie ist)
NET_IP=$(ifconfig 2>/dev/null | grep "inet " | grep -v "127.0.0.1" | awk '{print $2}' | sed 's/addr://' | head -n 1)
[ -z "$NET_IP" ] && NET_IP=$(ip route get 1.1.1.1 2>/dev/null | grep -oP 'src \K\S+')
[ -z "$NET_IP" ] && NET_IP="127.0.0.1"
DNS_FILE="$HOME/.current_dns"
MODE_FILE="$HOME/.current_mode"
# --- 2. DASHBOARD LOGIK ---
show_dashboard() {
local CUR_MODE=$(cat "$MODE_FILE" 2>/dev/null)
[ -z "$CUR_MODE" ] && CUR_MODE="NETZWERK"
if [ -f "$DNS_FILE" ]; then
MODUS_INFO="\e[1;33mFERNZUGRIFF\e[0m"; PORT_INFO="7070 (Fix)"; TARGET_DNS=$(cat "$DNS_FILE")
ADR_LABEL="WAN-ADRESSE: "; ADR_VAL="$TARGET_DNS"
EXTRA_INFO="NETZWERK-IP: $NET_IP"
elif [ "$CUR_MODE" = "LOKAL" ]; then
MODUS_INFO="\e[1;35mLOKAL (Privat)\e[0m"; PORT_INFO="8080 (Fix)"
ADR_LABEL="INTERN: "; ADR_VAL="\e[1;35m127.0.0.1\e[0m"
EXTRA_INFO="NETZWERK-IP: $NET_IP (Inaktiv)"
else
MODUS_INFO="\e[1;32mNETZWERK\e[0m"; PORT_INFO="8080 (Fix)"
ADR_LABEL="WLAN / LAN: "; ADR_VAL="\e[1;32m$NET_IP\e[0m"
EXTRA_INFO="WAN-ADRESSE: INAKTIV"
fi
pgrep -f "httpd" >/dev/null && SV_APACHE="\e[1;32mAKTIV\e[0m" || SV_APACHE="\e[1;31mSTOPP\e[0m"
pgrep -f "sshd" >/dev/null && SV_SSH="\e[1;32mAKTIV\e[0m" || SV_SSH="\e[1;31mSTOPP\e[0m"
pgrep -f "php" >/dev/null && SV_PHP="\e[1;32mAKTIV\e[0m" || SV_PHP="\e[1;31mSTOPP\e[0m"
DISK_FREE=$(df -h /sdcard 2>/dev/null | awk 'NR==2 {print $4}')
USB_PATH_CHK=$(ls -d /storage/*-* 2>/dev/null | grep -v "self" | grep -v "emulated" | head -n 1)
USB_ST=$([ -n "$USB_PATH_CHK" ] && echo -e "\e[1;32mBEREIT\e[0m ($(df -h "$USB_PATH_CHK" 2>/dev/null | awk 'NR==2 {print $4}') frei)" || echo -e "\e[1;31mFEHLT\e[0m")
[ -f "$HOME/.image_info" ] && IMG_SOURCE=$(head -n 2 "$HOME/.image_info" | tr '\n' ' | ' | sed 's/ | $//') || IMG_SOURCE="Kein Image-Abbild"
LAST_B=$(ls -t /sdcard/Download/xm.tar.gz /sdcard/Download/XM_MASTER_* 2>/dev/null | head -n 1 | xargs -n 1 basename 2>/dev/null)
clear
echo -e "\e[1;34m###########################################################\e[0m"
echo -e "\e[1;34m#\e[0m \e[1;37m 🚀 XTREAMMULTI STATION v6.0 \e[0m \e[1;34m#\e[0m"
echo -e "\e[1;34m###########################################################\e[0m"
echo -e "\e[1;34m#\e[0m MODUS: $MODUS_INFO"
echo -e "\e[1;34m#\e[0m $ADR_LABEL \e[1;32m$ADR_VAL\e[0m"
echo -e "\e[1;34m#\e[0m PORT: \e[1;33m$PORT_INFO\e[0m"
echo -e "\e[1;34m#\e[0m IMAGE-INFO: \e[1;36m$IMG_SOURCE\e[0m"
echo -e "\e[1;34m#\e[0m LETZTES BU: \e[1;32m${LAST_B:-Keines gefunden}\e[0m"
echo -e "\e[1;34m#\e[1;34m --------------------------------------------------------"
echo -e "\e[1;34m#\e[0m USB-STICK: $USB_ST"
echo -e "\e[1;34m#\e[0m SPEICHER: \e[1;32m$DISK_FREE Frei\e[0m"
echo -e "\e[1;34m#\e[0m INFO: $EXTRA_INFO"
echo -e "\e[1;34m###########################################################\e[0m"
echo -e "\e[1;34m#\e[0m APACHE: $SV_APACHE | PHP: $SV_PHP | SSH: $SV_SSH "
echo -e "\e[1;34m###########################################################\e[0m"
echo -e "\e[1;34m#\e[1;36m [DNS]\e[0m DNS \e[1;36m[6]\e[0m Backup_save \e[1;36m [cron] \e[0m Crontab"
echo -e "\e[1;34m#\e[1;36m [10]\e[0m Netzwerk \e[1;36m[8]\e[0m Backup_load \e[1;36m [check]\e[0m Croncheck"
echo -e "\e[1;34m#\e[1;36m [127]\e[0m Lokal \e[1;36m[cbu]\e[0m Backup_check\e[1;36m [lsm3u]\e[0m m3u Detail"
echo -e "\e[1;34m#\e[1;36m [xm]\e[0m Xtreammulti \e[1;36m[n]\e[0m Edit bashrc \e[1;36m [m]\e[0m Aktualisieren"
echo -e "\e[1;34m###########################################################\e[0m"
}
# --- 3. ALIASE (ÜBERSICHTLICH & OPTIMIERT) ---
alias n="nano ~/.bashrc"
alias m="source ~/.bashrc"
alias cron="EDITOR=nano crontab -e"
alias xm="cd ~/xtreammulti && ./menu.sh"
# Dein Check mit Farblogik (ersetzt cstatus)
alias check='tail -n 20 ~/xtreammulti/cron.log 2>/dev/null | sed -e "s/SUCCESS/$(printf "\e[1;32mSUCCESS\e[0m")/" -e "s/FAILED/$(printf "\e[1;31mFAILED\e[0m")/" || echo "Kein Log gefunden."'
# Live-Überwachung (Beenden mit Strg+C)
alias clog='tail -f ~/xtreammulti/cron.log'
# Manueller Start des Ablauf-Skripts
alias cstart='bash ~/start.sh'
# Dateiverwaltung & Web
alias lsm3u='find /data/data/com.termux/files/usr/share/apache2/default-site/htdocs -name "*.m3u" -exec ls -lh --time-style=+"%d.%m.%Y %H:%M" {} \+'
alias web='cd /data/data/com.termux/files/usr/share/apache2/default-site/htdocs'
alias 10='rm -f "$DNS_FILE"; echo "NETZWERK" > "$MODE_FILE"; ACTUAL_IP=$NET_IP; \
sed -i "s|^host=.*|host=\"http://$ACTUAL_IP:8080\"|g" $HOME/xtreammulti/portals/*.sh 2>/dev/null; \
sed -i "s|^URL_PLACEHOLDER=.*|URL_PLACEHOLDER=\"http://$ACTUAL_IP:8080\"|g" $HOME/start.sh 2>/dev/null; \
crontab -l 2>/dev/null | sed "s|http://[^/ ]*:[0-9]*|http://$ACTUAL_IP:8080|g" | crontab -; \
find $HOME $PREFIX/share/apache2/default-site/htdocs -type f \( -name "live.m3u*" -o -name "vod.m3u*" -o -name "series.m3u*" -o -name "*.php" -o -name ".htaccess" \) -print0 2>/dev/null | xargs -0 sed -i "s|http://[^/ ]*:[0-9]*|http://$ACTUAL_IP:8080|g" 2>/dev/null; \
echo -e "\n\e[1;32m✔ Modus: NETZWERK (Port 8080) synchronisiert\e[0m"; sleep 1; show_dashboard'
alias 127='rm -f "$DNS_FILE"; echo "LOKAL" > "$MODE_FILE"; ACTUAL_IP="127.0.0.1"; \
sed -i "s|^host=.*|host=\"http://$ACTUAL_IP:8080\"|g" $HOME/xtreammulti/portals/*.sh 2>/dev/null; \
sed -i "s|^URL_PLACEHOLDER=.*|URL_PLACEHOLDER=\"http://$ACTUAL_IP:8080\"|g" $HOME/start.sh 2>/dev/null; \
crontab -l 2>/dev/null | sed "s|http://[^/ ]*:[0-9]*|http://$ACTUAL_IP:8080|g" | crontab -; \
find $HOME $PREFIX/share/apache2/default-site/htdocs -type f \( -name "live.m3u*" -o -name "vod.m3u*" -o -name "series.m3u*" -o -name "*.php" -o -name ".htaccess" \) -print0 2>/dev/null | xargs -0 sed -i "s|http://[^/ ]*:[0-9]*|http://$ACTUAL_IP:8080|g" 2>/dev/null; \
echo -e "\n\e[1;35m✔ Modus: LOKAL (Port 8080) synchronisiert\e[0m"; sleep 1; show_dashboard'
alias DNS='echo -n "Fernzugriff Ziel: "; read RAW_DNS; USER_DNS=$(echo $RAW_DNS | sed -e "s|^http://||" -e "s|^https://||" -e "s|/$||"); \
if [ -n "$USER_DNS" ]; then echo "$USER_DNS" > "$DNS_FILE"; echo "DDNS" > "$MODE_FILE"; \
sed -i "s|^host=.*|host=\"http://$USER_DNS:7070\"|g" $HOME/xtreammulti/portals/*.sh 2>/dev/null; \
sed -i "s|^URL_PLACEHOLDER=.*|URL_PLACEHOLDER=\"http://$USER_DNS:7070\"|g" $HOME/start.sh 2>/dev/null; \
crontab -l 2>/dev/null | sed "s|http://[^/ ]*:[0-9]*|http://$USER_DNS:7070|g" | crontab -; \
find $HOME $PREFIX/share/apache2/default-site/htdocs -type f \( -name "live.m3u*" -o -name "vod.m3u*" -o -name "series.m3u*" -o -name "*.php" -o -name ".htaccess" \) -print0 2>/dev/null | xargs -0 sed -i "s|http://[^/ ]*:[0-9]*|http://$USER_DNS:7070|g" 2>/dev/null; \
echo -e "\n\e[1;33m✔ Modus: FERNZUGRIFF (Port 7070) synchronisiert\e[0m"; sleep 1; show_dashboard; fi'
# --- 4. BACKUP & RESTORE ---
#Systemabbild erstellen
alias 6='INFO_FILE="$HOME/.image_info"; STAMP=$(date +%d.%m.%y-%H:%M); \
echo "Erstellt: $STAMP" > "$INFO_FILE"; echo "Master: P40" >> "$INFO_FILE"; \
crontab -l > "$HOME/crontab_backup.txt" 2>/dev/null; \
USB_PATH=$(ls -d /storage/*-* 2>/dev/null | grep -v "self" | grep -v "emulated" | head -n 1); \
if [ -n "$USB_PATH" ]; then \
if ! touch "$USB_PATH/.write_test" 2>/dev/null; then \
echo -e "\e[1;31m⚠ USB vorhanden, aber KEINE SCHREIBRECHTE!\e[0m"; \
USB_OK=false; sleep 5; \
else \
rm "$USB_PATH/.write_test"; USB_OK=true; \
fi; \
fi; \
cd /data/data/com.termux/files; echo -e "\e[1;33mErstelle System-Image...\e[0m"; \
tar -cvzf /sdcard/Download/xm.tar.gz --exclude="usr/tmp/*" usr home 2>/dev/null; \
if [ "$USB_OK" = true ]; then \
cp /sdcard/Download/xm.tar.gz "$USB_PATH/"; \
echo -e "\e[1;32m✔ Backup auf USB gesichert!\e[0m"; \
else \
echo -e "\e[1;32m✔ Backup lokal fertig!\e[0m"; \
fi; cd ~; sleep 3; show_dashboard'
#Systemabbild wiederherstellen
alias 8='echo "Suche xm.tar.gz..."; \
FILE=$(ls -t /sdcard/Download/xm.tar.gz /sdcard/xm.tar.gz /storage/emulated/0/Download/xm.tar.gz $(ls -d /storage/*-*/xm.tar.gz 2>/dev/null) 2>/dev/null | head -n 1); \
if [ -n "$FILE" ]; then \
cd /data/data/com.termux/files && tar -xvzf "$FILE" --overwrite --exclude="usr/lib/libtermux-exec.so" 2>/dev/null; \
chmod -R 700 home; \
find usr/share/apache2/default-site/htdocs -type d -exec chmod 755 {} + 2>/dev/null; \
find usr/share/apache2/default-site/htdocs -type f -exec chmod 644 {} + 2>/dev/null; \
chmod +x usr/bin/sshd usr/bin/ssh*; \
termux-fix-shebang usr/bin/sshd 2>/dev/null; \
[ -f "$HOME/crontab_backup.txt" ] && crontab "$HOME/crontab_backup.txt"; \
echo -e "\e[1;32m✔ System-Restore & Web-Rechte (644) abgeschlossen.\e[0m"; \
echo "Bitte Termux komplett schließen und neu starten."; \
else \
echo -e "\e[1;31mFehler: xm.tar.gz nicht gefunden!\e[0m"; \
fi'
#Systemabbild auflisten
alias cbu='tar -tvzf /sdcard/Download/xm.tar.gz'
# --- 5. AUTOSTART ---
# Dienste nur starten, wenn sie nicht bereits laufen
pgrep sshd >/dev/null || sshd 2>/dev/null
pgrep httpd >/dev/null || apachectl start 2>/dev/null
pgrep php-fpm >/dev/null || php-fpm 2>/dev/null
# Einmalige Aktionen pro Sitzung (Wake-Lock & Setup)
if [ -z "$BASHRC_LOADED" ]; then
export BASHRC_LOADED=1
termux-wake-lock
CUR_MODE=$(cat "$MODE_FILE" 2>/dev/null)
if [ ! -f "$DNS_FILE" ] && [ "$CUR_MODE" != "LOKAL" ]; then
10 > /dev/null
fi
fi
show_dashboard
also sollte ich einfach auf diese version umsteigen und alles neu aufsetzen?Ja da sollte es von alleine passieren... Welche Version? Geht nur 0118.3 die neueren machen probleme
Das hatte ich bei Tivimate auch öfter. Gibt Portale bei denen das häufiger vorkommt. Dark war immer so ein Fall."HttpDataSourceException"
wie heißt die übersachrift dieses threads?wieso proxy? nutzt ihr proxies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?