Hallo, ich habe die Situation nun mit scp gelöst.
Nochmal vielen Dank für die Hilfe.
Da das Ganze mit dem Thema
viewtopic.php?t=186006 zusammen hängt habe ich da ein Script für beide Dinge.
Ich gebe zu das mir hier Chat GPT zur Seite stand. Bitte schlagt mich nicht aber ich bin halt Laie auf dem Gebiet.
Ich habe das script nach und nach mit Chat GPT entwickelt und immer wieder getestet bis es so funktioniert wie ich es möchte. "sshpass" wurde durch erstellen eines Schlüsselpaars ersetzt.(kein Passwort mehr im script)
Ich werde es natürlich hier zur Verfügung stellen.
Code: Alles auswählen
#!/bin/bash
# Mit diesem Skript holst du txt Dateien aus dem PI zu Hause oder im Büro
# Autor Xantorix
# farbige Ausgabe von "echo"
function red_msg() {
echo -e "\\033[31;1m${@}\033[0m"
}
function yellow_msg() {
echo -e "\\033[33;1m${@}\033[0m"
}
# Definiert die beiden IP-Adressen, die überprüft werden sollen
ip1=192.168.17x.yy
ip2=192.168.17x.yy
# Definiert das lokale Verzeichnis, in das die Dateien kopiert werden
local_dir=/lokales/Verzeichnis
# Definiert das entfernte Verzeichnis, in dem sich die Dateien befinden
remote_dir=/entferntes/Verzeichnis
# Funktion zum Kopieren von Dateien von einer gegebenen IP
copy_files_from_ip(){
local ip=$1
files_copied=0
for file in $(ssh pi@$ip ls $remote_dir/*.txt); do
filename=$(basename $file)
target_file="$local_dir/$(date +%Y-%m-%d)_$filename"
if [ ! -f $target_file ]; then
scp pi@$ip:$file $target_file
files_copied=1
ssh pi@$ip "rm $file"
fi
done
if [ $files_copied -eq 0 ]; then
red_msg "Die IP $ip ist erreichbar, aber es waren keine Dateien vorhanden"
else
yellow_msg "Dateien von IP $ip kopiert"
fi
}
# Überprüft, ob die erste IP erreichbar ist
if ping -c 1 $ip1 &> /dev/null; then
copy_files_from_ip $ip1
else
# Überprüft, ob die zweite IP erreichbar ist
if ping -c 1 $ip2 &> /dev/null; then
copy_files_from_ip $ip2
else
red_msg "Weder IP $ip1 noch IP $ip2 sind erreichbar"
fi
fi
Gruß Xante