Dateien nach "symlink_manager" hochladen
This commit is contained in:
parent
76ef97c5e3
commit
9fc0854bf8
|
|
@ -0,0 +1,5 @@
|
|||
192.168.176.12 kladow-archiv
|
||||
192.168.176.13 kladow-laufend
|
||||
192.168.174.11 hetzner-ausgelagert
|
||||
192.168.174.12 hetzner-archiv
|
||||
192.168.174.13 hetzner-laufend
|
||||
|
|
@ -0,0 +1,163 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Konfigurationsdateien
|
||||
SERVER_FILE="ip_name_map.txt"
|
||||
TARGET_FILE="symlink_targets.txt"
|
||||
BASE_DIR="$HOME"
|
||||
|
||||
# Überprüfen der Existenz von Konfigurationsdateien
|
||||
check_files() {
|
||||
[[ ! -f "$SERVER_FILE" ]] && touch "$SERVER_FILE"
|
||||
[[ ! -f "$TARGET_FILE" ]] && touch "$TARGET_FILE"
|
||||
}
|
||||
|
||||
# Menü anzeigen
|
||||
main_menu() {
|
||||
local choice=$(zenity --list \
|
||||
--title="Symlink Manager" \
|
||||
--text="Wählen Sie eine Option:" \
|
||||
--column="Option" --column="Beschreibung" \
|
||||
"1" "Symlinks erstellen" \
|
||||
"2" "Symlinks löschen" \
|
||||
"3" "NFS-Freigaben aktualisieren" \
|
||||
"4" "Server-Einträge bearbeiten" \
|
||||
"5" "Beenden")
|
||||
|
||||
case $choice in
|
||||
1) create_symlinks ;;
|
||||
2) delete_symlinks ;;
|
||||
3) update_symlink_targets ;;
|
||||
4) manage_servers ;;
|
||||
5) exit 0 ;;
|
||||
*) zenity --error --text="Ungültige Auswahl. Bitte versuchen Sie es erneut." ;;
|
||||
esac
|
||||
}
|
||||
|
||||
# Symlinks erstellen
|
||||
create_symlinks() {
|
||||
echo "[INFO] Starte die Erstellung von Symlinks."
|
||||
|
||||
# Auswahl der Server
|
||||
local server_selection=$(awk '{print $2}' "$SERVER_FILE" | \
|
||||
zenity --list \
|
||||
--title="Server auswählen" \
|
||||
--text="Wählen Sie die Server aus, für die Symlinks erstellt werden sollen:" \
|
||||
--checklist \
|
||||
--column="Auswahl" \
|
||||
--column="Server" \
|
||||
$(awk '{print "FALSE", $2}' "$SERVER_FILE" | tr '\n' ' '))
|
||||
|
||||
if [ -z "$server_selection" ]; then
|
||||
zenity --error --text="Keine Server ausgewählt."
|
||||
echo "[INFO] Keine Server ausgewählt. Vorgang abgebrochen."
|
||||
return
|
||||
fi
|
||||
|
||||
# Verarbeitung der ausgewählten Server
|
||||
while IFS= read -r line; do
|
||||
local ip_address=$(echo "$line" | awk '{print $1}')
|
||||
local server_name=$(echo "$line" | awk '{print $2}')
|
||||
|
||||
if [[ "$server_selection" == *"$server_name"* ]]; then
|
||||
local target_dir="$BASE_DIR/$server_name"
|
||||
mkdir -p "$target_dir" # Stammverzeichnis erstellen
|
||||
echo "[INFO] Stammverzeichnis erstellt oder vorhanden: $target_dir"
|
||||
|
||||
# NFS-Freigaben des Servers
|
||||
grep "/net/$ip_address" "$TARGET_FILE" | while IFS= read -r nfs_path; do
|
||||
local symlink_name="$target_dir/$(basename "$nfs_path")"
|
||||
|
||||
# Symlink erstellen
|
||||
ln -sfn "$nfs_path" "$symlink_name" && \
|
||||
echo "[INFO] Symlink erstellt: $symlink_name -> $nfs_path" || \
|
||||
echo "[ERROR] Fehler beim Erstellen des Symlinks: $symlink_name -> $nfs_path"
|
||||
done
|
||||
fi
|
||||
done < "$SERVER_FILE"
|
||||
|
||||
zenity --info --text="Symlinks erfolgreich erstellt."
|
||||
echo "[INFO] Symlinks-Erstellung abgeschlossen."
|
||||
}
|
||||
|
||||
# Symlinks löschen
|
||||
delete_symlinks() {
|
||||
echo "[INFO] Starte das Löschen von Symlinks."
|
||||
find "$BASE_DIR" -type l -exec rm -v {} \;
|
||||
zenity --info --text="Alle Symlinks wurden gelöscht."
|
||||
echo "[INFO] Alle Symlinks wurden erfolgreich gelöscht."
|
||||
}
|
||||
|
||||
# NFS-Freigaben aktualisieren
|
||||
# NFS-Freigaben aktualisieren
|
||||
update_symlink_targets() {
|
||||
echo "[INFO] Aktualisiere die Liste der NFS-Freigaben..."
|
||||
> "$TARGET_FILE" # Alte Datei leeren
|
||||
|
||||
while IFS= read -r line; do
|
||||
local ip_address=$(echo "$line" | awk '{print $1}')
|
||||
local server_name=$(echo "$line" | awk '{print $2}')
|
||||
echo "[DEBUG] Scanne NFS-Freigaben für Server: $ip_address"
|
||||
|
||||
# Führe den showmount-Befehl aus und überprüfe auf Erfolg
|
||||
local exports=$(showmount -e "$ip_address" 2>/dev/null | awk '/^\// {print $1}')
|
||||
if [[ -z "$exports" ]]; then
|
||||
echo "[ERROR] Keine NFS-Freigaben gefunden für $ip_address ($server_name)."
|
||||
else
|
||||
echo "$exports" | while IFS= read -r export; do
|
||||
echo "/net/$ip_address$export" >> "$TARGET_FILE"
|
||||
echo "[DEBUG] Hinzugefügt: /net/$ip_address$export"
|
||||
done
|
||||
fi
|
||||
done < "$SERVER_FILE"
|
||||
|
||||
zenity --info --text="NFS-Freigaben erfolgreich aktualisiert."
|
||||
echo "[INFO] NFS-Freigaben wurden in $TARGET_FILE aktualisiert."
|
||||
}
|
||||
|
||||
# Server-Einträge bearbeiten
|
||||
manage_servers() {
|
||||
local action=$(zenity --list \
|
||||
--title="Server-Verwaltung" \
|
||||
--text="Wählen Sie eine Aktion:" \
|
||||
--column="Aktion" --column="Beschreibung" \
|
||||
"1" "Neuen Server hinzufügen" \
|
||||
"2" "Existierenden Server entfernen" \
|
||||
"3" "Zurück zum Hauptmenü")
|
||||
|
||||
case $action in
|
||||
1)
|
||||
local new_ip=$(zenity --entry --title="Neuer Server" --text="Geben Sie die IP-Adresse des Servers ein:")
|
||||
local new_name=$(zenity --entry --title="Neuer Server" --text="Geben Sie den Namen des Servers ein:")
|
||||
if [[ -n "$new_ip" && -n "$new_name" ]]; then
|
||||
echo "$new_ip $new_name" >> "$SERVER_FILE"
|
||||
zenity --info --text="Server hinzugefügt: $new_ip -> $new_name"
|
||||
echo "[INFO] Server hinzugefügt: $new_ip -> $new_name"
|
||||
else
|
||||
zenity --error --text="Ungültige Eingabe. Server wurde nicht hinzugefügt."
|
||||
fi
|
||||
;;
|
||||
2)
|
||||
local remove_name=$(awk '{print $2}' "$SERVER_FILE" | \
|
||||
zenity --list \
|
||||
--title="Server entfernen" \
|
||||
--text="Wählen Sie den Server aus, den Sie entfernen möchten:" \
|
||||
--column="Server")
|
||||
|
||||
if [ -n "$remove_name" ]; then
|
||||
sed -i "/ $remove_name$/d" "$SERVER_FILE"
|
||||
zenity --info --text="Server entfernt: $remove_name"
|
||||
echo "[INFO] Server entfernt: $remove_name"
|
||||
else
|
||||
zenity --error --text="Kein Server ausgewählt. Vorgang abgebrochen."
|
||||
fi
|
||||
;;
|
||||
3) return ;;
|
||||
*) zenity --error --text="Ungültige Auswahl. Bitte versuchen Sie es erneut." ;;
|
||||
esac
|
||||
}
|
||||
|
||||
# Hauptteil des Skripts
|
||||
check_files
|
||||
while true; do
|
||||
main_menu
|
||||
done
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
/net/192.168.176.12/srv/fileserver/dokumente
|
||||
/net/192.168.176.12/srv/fileserver/aufmasse
|
||||
/net/192.168.176.12/srv/fileserver/software
|
||||
/net/192.168.176.12/srv/fileserver/musik
|
||||
/net/192.168.176.12/srv/fileserver/hausverwaltung
|
||||
/net/192.168.176.12/srv/fileserver/fotografie
|
||||
/net/192.168.176.12/srv/fileserver/feldrechner
|
||||
/net/192.168.176.12/srv/fileserver/datensicherung
|
||||
/net/192.168.176.12/srv/fileserver/buchhaltung
|
||||
/net/192.168.176.12/srv/fileserver/bilder
|
||||
/net/192.168.176.12/srv/fileserver/aufmasse-archiv
|
||||
/net/192.168.176.13/srv/fileserver/scripte
|
||||
/net/192.168.176.13/srv/fileserver/scandaten
|
||||
/net/192.168.176.13/srv/fileserver/hausverwaltung
|
||||
/net/192.168.176.13/srv/fileserver/feldrechner
|
||||
/net/192.168.176.13/srv/fileserver/dokumente
|
||||
/net/192.168.176.13/srv/fileserver/buchhaltung
|
||||
/net/192.168.176.13/srv/fileserver/aufmasse
|
||||
/net/192.168.174.11/srv/fileserver/dokumente-ausgelagert
|
||||
/net/192.168.174.11/srv/fileserver/aufmasse-ausgelagert
|
||||
/net/192.168.174.12/srv/fileserver/software
|
||||
/net/192.168.174.12/srv/fileserver/musik
|
||||
/net/192.168.174.12/srv/fileserver/hausverwaltung
|
||||
/net/192.168.174.12/srv/fileserver/fotografie
|
||||
/net/192.168.174.12/srv/fileserver/feldrechner
|
||||
/net/192.168.174.12/srv/fileserver/datensicherung
|
||||
/net/192.168.174.12/srv/fileserver/buchhaltung
|
||||
/net/192.168.174.12/srv/fileserver/bilder
|
||||
/net/192.168.174.12/srv/fileserver/aufmasse-archiv
|
||||
/net/192.168.174.13/srv/fileserver/dokumente
|
||||
/net/192.168.174.13/srv/fileserver/feldrechner
|
||||
/net/192.168.174.13/srv/fileserver/hausverwaltung
|
||||
/net/192.168.174.13/srv/fileserver/scandaten
|
||||
/net/192.168.174.13/srv/fileserver/scripte
|
||||
/net/192.168.174.13/srv/fileserver/buchhaltung
|
||||
/net/192.168.174.13/srv/fileserver/aufmasse
|
||||
Loading…
Reference in New Issue