Uninstaller ausgelagert.
This commit is contained in:
@@ -78,6 +78,9 @@ sudo bash install.sh --help # Hilfe anzeigen
|
|||||||
sudo bash install.sh update # Update mit automatischer Konfigurations-Migration
|
sudo bash install.sh update # Update mit automatischer Konfigurations-Migration
|
||||||
sudo bash install.sh status # Installationsstatus prüfen
|
sudo bash install.sh status # Installationsstatus prüfen
|
||||||
|
|
||||||
|
# Deinstallation (kein install.sh benötigt)
|
||||||
|
sudo bash /opt/adguard-shield/uninstall.sh # Direkt aus dem Installationsverzeichnis
|
||||||
|
|
||||||
# Monitor
|
# Monitor
|
||||||
sudo /opt/adguard-shield/adguard-shield.sh status # Aktive Sperren anzeigen
|
sudo /opt/adguard-shield/adguard-shield.sh status # Aktive Sperren anzeigen
|
||||||
sudo /opt/adguard-shield/adguard-shield.sh history # Ban-History anzeigen
|
sudo /opt/adguard-shield/adguard-shield.sh history # Ban-History anzeigen
|
||||||
@@ -103,7 +106,8 @@ sudo journalctl -u adguard-shield -f # Logs live ver
|
|||||||
├── iptables-helper.sh # Manuelle iptables-Verwaltung
|
├── iptables-helper.sh # Manuelle iptables-Verwaltung
|
||||||
├── unban-expired.sh # Cron-basiertes Entsperren
|
├── unban-expired.sh # Cron-basiertes Entsperren
|
||||||
├── report-generator.sh # E-Mail Report Generator
|
├── report-generator.sh # E-Mail Report Generator
|
||||||
├── install.sh # Installer / Updater / Uninstaller
|
├── install.sh # Installer / Updater
|
||||||
|
├── uninstall.sh # Uninstaller (wird ins Installationsverzeichnis kopiert)
|
||||||
├── templates/
|
├── templates/
|
||||||
│ ├── report.html # HTML-Report-Template
|
│ ├── report.html # HTML-Report-Template
|
||||||
│ └── report.txt # TXT-Report-Template
|
│ └── report.txt # TXT-Report-Template
|
||||||
|
|||||||
+12
-1
@@ -14,7 +14,7 @@ sudo bash install.sh install
|
|||||||
# Update (mit automatischer Konfigurations-Migration)
|
# Update (mit automatischer Konfigurations-Migration)
|
||||||
sudo bash install.sh update
|
sudo bash install.sh update
|
||||||
|
|
||||||
# Deinstallation
|
# Deinstallation (delegiert automatisch an den installierten Uninstaller)
|
||||||
sudo bash install.sh uninstall
|
sudo bash install.sh uninstall
|
||||||
|
|
||||||
# Installationsstatus anzeigen
|
# Installationsstatus anzeigen
|
||||||
@@ -24,6 +24,17 @@ sudo bash install.sh status
|
|||||||
sudo bash install.sh --help
|
sudo bash install.sh --help
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Uninstaller (eigenständig)
|
||||||
|
|
||||||
|
Ab Version 0.6 wird bei der Installation ein eigenständiger Uninstaller nach `/opt/adguard-shield/uninstall.sh` kopiert. Die Deinstallation kann damit **ohne die originalen Installationsdateien** durchgeführt werden:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Direkt aus dem Installationsverzeichnis — kein install.sh benötigt
|
||||||
|
sudo bash /opt/adguard-shield/uninstall.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
Der Uninstaller kennt seinen Speicherort und leitet daraus automatisch das Installationsverzeichnis ab. `install.sh uninstall` delegiert intern ebenfalls dorthin — beide Wege führen zum selben Ergebnis.
|
||||||
|
|
||||||
### Update-Verhalten
|
### Update-Verhalten
|
||||||
|
|
||||||
Beim Update passiert automatisch:
|
Beim Update passiert automatisch:
|
||||||
|
|||||||
@@ -213,11 +213,18 @@ sudo bash install.sh update
|
|||||||
|
|
||||||
## Deinstallation
|
## Deinstallation
|
||||||
|
|
||||||
|
Ab Version 0.6 gibt es einen eigenständigen Uninstaller im Installationsverzeichnis. Die Deinstallation kann daher jederzeit durchgeführt werden, **ohne die originalen Installationsdateien (install.sh) behalten zu müssen**:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Über den Installer (interaktiv mit Menü)
|
# Empfohlen: direkt aus dem Installationsverzeichnis ausführen
|
||||||
|
sudo bash /opt/adguard-shield/uninstall.sh
|
||||||
|
|
||||||
|
# Alternativ: über den Installer (sofern noch vorhanden)
|
||||||
sudo bash install.sh uninstall
|
sudo bash install.sh uninstall
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Beide Wege sind gleichwertig — `install.sh uninstall` delegiert intern an `/opt/adguard-shield/uninstall.sh`.
|
||||||
|
|
||||||
Oder manuell:
|
Oder manuell:
|
||||||
```bash
|
```bash
|
||||||
sudo systemctl stop adguard-shield
|
sudo systemctl stop adguard-shield
|
||||||
|
|||||||
+18
-6
@@ -70,6 +70,9 @@ print_help() {
|
|||||||
echo -e " ${GREEN}uninstall${NC} Vollständige Deinstallation"
|
echo -e " ${GREEN}uninstall${NC} Vollständige Deinstallation"
|
||||||
echo -e " Stoppt den Service, entfernt iptables-Regeln und"
|
echo -e " Stoppt den Service, entfernt iptables-Regeln und"
|
||||||
echo -e " löscht alle Dateien (optional Konfiguration behalten)."
|
echo -e " löscht alle Dateien (optional Konfiguration behalten)."
|
||||||
|
echo -e " Delegiert automatisch an den im Installationsverzeichnis"
|
||||||
|
echo -e " liegenden Uninstaller — kein Behalten der Installationsdateien nötig."
|
||||||
|
echo -e " Direkt ausführbar: ${CYAN}sudo bash $INSTALL_DIR/uninstall.sh${NC}"
|
||||||
echo ""
|
echo ""
|
||||||
echo -e " ${GREEN}status${NC} Installationsstatus anzeigen"
|
echo -e " ${GREEN}status${NC} Installationsstatus anzeigen"
|
||||||
echo -e " Zeigt ob AdGuard Shield installiert ist, welche Version"
|
echo -e " Zeigt ob AdGuard Shield installiert ist, welche Version"
|
||||||
@@ -239,6 +242,7 @@ install_files() {
|
|||||||
cp "$SCRIPT_DIR/unban-expired.sh" "$INSTALL_DIR/"
|
cp "$SCRIPT_DIR/unban-expired.sh" "$INSTALL_DIR/"
|
||||||
cp "$SCRIPT_DIR/external-blocklist-worker.sh" "$INSTALL_DIR/"
|
cp "$SCRIPT_DIR/external-blocklist-worker.sh" "$INSTALL_DIR/"
|
||||||
cp "$SCRIPT_DIR/report-generator.sh" "$INSTALL_DIR/"
|
cp "$SCRIPT_DIR/report-generator.sh" "$INSTALL_DIR/"
|
||||||
|
cp "$SCRIPT_DIR/uninstall.sh" "$INSTALL_DIR/"
|
||||||
|
|
||||||
# Templates kopieren
|
# Templates kopieren
|
||||||
mkdir -p "$INSTALL_DIR/templates"
|
mkdir -p "$INSTALL_DIR/templates"
|
||||||
@@ -251,6 +255,7 @@ install_files() {
|
|||||||
chmod +x "$INSTALL_DIR/unban-expired.sh"
|
chmod +x "$INSTALL_DIR/unban-expired.sh"
|
||||||
chmod +x "$INSTALL_DIR/external-blocklist-worker.sh"
|
chmod +x "$INSTALL_DIR/external-blocklist-worker.sh"
|
||||||
chmod +x "$INSTALL_DIR/report-generator.sh"
|
chmod +x "$INSTALL_DIR/report-generator.sh"
|
||||||
|
chmod +x "$INSTALL_DIR/uninstall.sh"
|
||||||
|
|
||||||
echo -e " ✅ Dateien installiert"
|
echo -e " ✅ Dateien installiert"
|
||||||
echo ""
|
echo ""
|
||||||
@@ -519,6 +524,9 @@ print_summary() {
|
|||||||
echo " Hilfe anzeigen:"
|
echo " Hilfe anzeigen:"
|
||||||
echo " sudo bash install.sh --help"
|
echo " sudo bash install.sh --help"
|
||||||
echo ""
|
echo ""
|
||||||
|
echo " Deinstallieren (auch ohne Installationsdateien):"
|
||||||
|
echo " sudo bash $INSTALL_DIR/uninstall.sh"
|
||||||
|
echo ""
|
||||||
}
|
}
|
||||||
|
|
||||||
# ─── Status anzeigen ─────────────────────────────────────────────────────────
|
# ─── Status anzeigen ─────────────────────────────────────────────────────────
|
||||||
@@ -705,10 +713,15 @@ do_uninstall() {
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo -e "${YELLOW}Deinstalliere AdGuard Shield...${NC}"
|
# An den im Installationsverzeichnis liegenden Uninstaller delegieren
|
||||||
|
if [[ -f "$INSTALL_DIR/uninstall.sh" ]]; then
|
||||||
|
exec bash "$INSTALL_DIR/uninstall.sh"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Fallback für ältere Installationen ohne uninstall.sh
|
||||||
|
echo -e "${YELLOW}Deinstalliere AdGuard Shield (Fallback-Modus)...${NC}"
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
# Sicherheitsabfrage
|
|
||||||
read -rep " Wirklich deinstallieren? [j/N]: " confirm
|
read -rep " Wirklich deinstallieren? [j/N]: " confirm
|
||||||
if [[ "${confirm,,}" != "j" ]]; then
|
if [[ "${confirm,,}" != "j" ]]; then
|
||||||
echo -e "${GREEN}Deinstallation abgebrochen.${NC}"
|
echo -e "${GREEN}Deinstallation abgebrochen.${NC}"
|
||||||
@@ -716,7 +729,6 @@ do_uninstall() {
|
|||||||
fi
|
fi
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
# Service stoppen und deaktivieren
|
|
||||||
if systemctl is-active adguard-shield &>/dev/null; then
|
if systemctl is-active adguard-shield &>/dev/null; then
|
||||||
systemctl stop adguard-shield
|
systemctl stop adguard-shield
|
||||||
echo " ✅ Service gestoppt"
|
echo " ✅ Service gestoppt"
|
||||||
@@ -729,18 +741,18 @@ do_uninstall() {
|
|||||||
systemctl daemon-reload
|
systemctl daemon-reload
|
||||||
echo " ✅ Service-Datei entfernt"
|
echo " ✅ Service-Datei entfernt"
|
||||||
|
|
||||||
# iptables Chain aufräumen
|
|
||||||
if [[ -f "$INSTALL_DIR/iptables-helper.sh" ]]; then
|
if [[ -f "$INSTALL_DIR/iptables-helper.sh" ]]; then
|
||||||
bash "$INSTALL_DIR/iptables-helper.sh" remove || true
|
bash "$INSTALL_DIR/iptables-helper.sh" remove || true
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Dateien entfernen
|
|
||||||
read -rep " Konfiguration und Logs behalten? [j/N]: " keep
|
read -rep " Konfiguration und Logs behalten? [j/N]: " keep
|
||||||
if [[ "${keep,,}" == "j" ]]; then
|
if [[ "${keep,,}" == "j" ]]; then
|
||||||
rm -f "$INSTALL_DIR/adguard-shield.sh"
|
rm -f "$INSTALL_DIR/adguard-shield.sh"
|
||||||
rm -f "$INSTALL_DIR/iptables-helper.sh"
|
rm -f "$INSTALL_DIR/iptables-helper.sh"
|
||||||
rm -f "$INSTALL_DIR/unban-expired.sh"
|
rm -f "$INSTALL_DIR/unban-expired.sh"
|
||||||
rm -f "$INSTALL_DIR/external-blocklist-worker.sh"
|
rm -f "$INSTALL_DIR/external-blocklist-worker.sh"
|
||||||
|
rm -f "$INSTALL_DIR/report-generator.sh"
|
||||||
|
rm -rf "$INSTALL_DIR/templates"
|
||||||
echo " ✅ Scripts entfernt (Konfiguration und Logs behalten)"
|
echo " ✅ Scripts entfernt (Konfiguration und Logs behalten)"
|
||||||
else
|
else
|
||||||
rm -rf "$INSTALL_DIR"
|
rm -rf "$INSTALL_DIR"
|
||||||
@@ -766,7 +778,7 @@ main() {
|
|||||||
do_update
|
do_update
|
||||||
;;
|
;;
|
||||||
uninstall)
|
uninstall)
|
||||||
print_header
|
# print_header wird vom delegierten uninstall.sh übernommen
|
||||||
do_uninstall
|
do_uninstall
|
||||||
;;
|
;;
|
||||||
status)
|
status)
|
||||||
|
|||||||
+129
@@ -0,0 +1,129 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
###############################################################################
|
||||||
|
# AdGuard Shield - Uninstaller
|
||||||
|
# Autor: Patrick Asmus
|
||||||
|
# E-Mail: support@techniverse.net
|
||||||
|
# Lizenz: MIT
|
||||||
|
#
|
||||||
|
# Dieses Script befindet sich im Installationsverzeichnis und kann daher
|
||||||
|
# ohne die originalen Installationsdateien ausgeführt werden:
|
||||||
|
# sudo bash /opt/adguard-shield/uninstall.sh
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
# INSTALL_DIR ergibt sich aus dem Verzeichnis, in dem dieses Script liegt
|
||||||
|
INSTALL_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
|
SERVICE_FILE="/etc/systemd/system/adguard-shield.service"
|
||||||
|
|
||||||
|
# Farben
|
||||||
|
RED='\033[0;31m'
|
||||||
|
GREEN='\033[0;32m'
|
||||||
|
YELLOW='\033[1;33m'
|
||||||
|
BLUE='\033[0;34m'
|
||||||
|
CYAN='\033[0;36m'
|
||||||
|
BOLD='\033[1m'
|
||||||
|
NC='\033[0m'
|
||||||
|
|
||||||
|
print_header() {
|
||||||
|
echo ""
|
||||||
|
echo -e "${BLUE}"
|
||||||
|
echo " ▄▄▄ ▓█████▄ ▄████ █ ██ ▄▄▄ ██▀███ ▓█████▄ ██████ ██░ ██ ██▓▓█████ ██▓ ▓█████▄ "
|
||||||
|
echo "▒████▄ ▒██▀ ██▌ ██▒ ▀█▒ ██ ▓██▒▒████▄ ▓██ ▒ ██▒▒██▀ ██▌ ▒██ ▒ ▓██░ ██▒▓██▒▓█ ▀ ▓██▒ ▒██▀ ██▌"
|
||||||
|
echo "▒██ ▀█▄ ░██ █▌▒██░▄▄▄░▓██ ▒██░▒██ ▀█▄ ▓██ ░▄█ ▒░██ █▌ ░ ▓██▄ ▒██▀▀██░▒██▒▒███ ▒██░ ░██ █▌"
|
||||||
|
echo "░██▄▄▄▄██ ░▓█▄ ▌░▓█ ██▓▓▓█ ░██░░██▄▄▄▄██ ▒██▀▀█▄ ░▓█▄ ▌ ▒ ██▒░▓█ ░██ ░██░▒▓█ ▄ ▒██░ ░▓█▄ ▌"
|
||||||
|
echo " ▓█ ▓██▒░▒████▓ ░▒▓███▀▒▒▒█████▓ ▓█ ▓██▒░██▓ ▒██▒░▒████▓ ▒██████▒▒░▓█▒░██▓░██░░▒████▒░██████▒░▒████▓ "
|
||||||
|
echo " ▒▒ ▓▒█░ ▒▒▓ ▒ ░▒ ▒ ░▒▓▒ ▒ ▒ ▒▒ ▓▒█░░ ▒▓ ░▒▓░ ▒▒▓ ▒ ▒ ▒▓▒ ▒ ░ ▒ ░░▒░▒░▓ ░░ ▒░ ░░ ▒░▓ ░ ▒▒▓ ▒ "
|
||||||
|
echo " ▒ ▒▒ ░ ░ ▒ ▒ ░ ░ ░░▒░ ░ ░ ▒ ▒▒ ░ ░▒ ░ ▒░ ░ ▒ ▒ ░ ░▒ ░ ░ ▒ ░▒░ ░ ▒ ░ ░ ░ ░░ ░ ▒ ░ ░ ▒ ▒ "
|
||||||
|
echo " ░ ▒ ░ ░ ░ ░ ░ ░ ░░░ ░ ░ ░ ▒ ░░ ░ ░ ░ ░ ░ ░ ░ ░ ░░ ░ ▒ ░ ░ ░ ░ ░ ░ ░ "
|
||||||
|
echo " ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ "
|
||||||
|
echo " ░ ░ ░ "
|
||||||
|
echo -e "${NC}"
|
||||||
|
echo -e "${GREEN} Uninstaller${NC}"
|
||||||
|
echo -e "${BLUE} Autor: Patrick Asmus${NC}"
|
||||||
|
echo -e
|
||||||
|
echo -e "${BLUE} E-Mail: support@techniverse.net${NC}"
|
||||||
|
echo -e "${BLUE} Web: https://www.patrick-asmus.de${NC}"
|
||||||
|
echo ""
|
||||||
|
echo -e "${BLUE}───────────────────────────────────────────────────────────────────────────────────────────────────────────────${NC}"
|
||||||
|
echo ""
|
||||||
|
echo -e "${BLUE} Repo: https://git.techniverse.net/scriptos/adguard-shield${NC}"
|
||||||
|
echo ""
|
||||||
|
echo -e "${BLUE}═══════════════════════════════════════════════════════════════════════════════════════════════════════════════${NC}"
|
||||||
|
echo ""
|
||||||
|
}
|
||||||
|
|
||||||
|
check_root() {
|
||||||
|
if [[ $EUID -ne 0 ]]; then
|
||||||
|
echo -e "${RED}Dieses Script muss als root ausgeführt werden!${NC}" >&2
|
||||||
|
echo "Bitte mit 'sudo $0' ausführen."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
do_uninstall() {
|
||||||
|
check_root
|
||||||
|
|
||||||
|
# Prüfen ob installiert
|
||||||
|
if [[ ! -d "$INSTALL_DIR" ]]; then
|
||||||
|
echo -e "${RED}AdGuard Shield ist nicht installiert (Verzeichnis nicht gefunden: $INSTALL_DIR)!${NC}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo -e "${YELLOW}Deinstalliere AdGuard Shield aus: ${BOLD}$INSTALL_DIR${NC}"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# Sicherheitsabfrage
|
||||||
|
read -rep " Wirklich deinstallieren? [j/N]: " confirm
|
||||||
|
if [[ "${confirm,,}" != "j" ]]; then
|
||||||
|
echo -e "${GREEN}Deinstallation abgebrochen.${NC}"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# Service stoppen und deaktivieren
|
||||||
|
if systemctl is-active adguard-shield &>/dev/null; then
|
||||||
|
systemctl stop adguard-shield
|
||||||
|
echo " ✅ Service gestoppt"
|
||||||
|
fi
|
||||||
|
if systemctl is-enabled adguard-shield &>/dev/null; then
|
||||||
|
systemctl disable adguard-shield
|
||||||
|
echo " ✅ Service deaktiviert"
|
||||||
|
fi
|
||||||
|
if [[ -f "$SERVICE_FILE" ]]; then
|
||||||
|
rm -f "$SERVICE_FILE"
|
||||||
|
systemctl daemon-reload
|
||||||
|
echo " ✅ Service-Datei entfernt"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# iptables Chain aufräumen
|
||||||
|
if [[ -f "$INSTALL_DIR/iptables-helper.sh" ]]; then
|
||||||
|
bash "$INSTALL_DIR/iptables-helper.sh" remove || true
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Dateien entfernen
|
||||||
|
read -rep " Konfiguration und Logs behalten? [j/N]: " keep
|
||||||
|
if [[ "${keep,,}" == "j" ]]; then
|
||||||
|
rm -f "$INSTALL_DIR/adguard-shield.sh"
|
||||||
|
rm -f "$INSTALL_DIR/iptables-helper.sh"
|
||||||
|
rm -f "$INSTALL_DIR/unban-expired.sh"
|
||||||
|
rm -f "$INSTALL_DIR/external-blocklist-worker.sh"
|
||||||
|
rm -f "$INSTALL_DIR/report-generator.sh"
|
||||||
|
rm -f "$INSTALL_DIR/uninstall.sh"
|
||||||
|
rm -rf "$INSTALL_DIR/templates"
|
||||||
|
echo " ✅ Scripts entfernt (Konfiguration und Logs behalten)"
|
||||||
|
echo ""
|
||||||
|
echo -e "${YELLOW} Konfiguration verbleibt in: $INSTALL_DIR/adguard-shield.conf${NC}"
|
||||||
|
echo -e "${YELLOW} Logs verbleiben in: /var/log/adguard-shield*.log${NC}"
|
||||||
|
else
|
||||||
|
rm -rf "$INSTALL_DIR"
|
||||||
|
rm -rf /var/lib/adguard-shield
|
||||||
|
rm -f /var/log/adguard-shield.log*
|
||||||
|
rm -f /var/log/adguard-shield-bans.log
|
||||||
|
echo " ✅ Alles entfernt"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo -e "${GREEN}Deinstallation abgeschlossen.${NC}"
|
||||||
|
}
|
||||||
|
|
||||||
|
print_header
|
||||||
|
do_uninstall
|
||||||
Reference in New Issue
Block a user