Habs noch gefunden. Pfade müssen halt zur eigenen LFTP Installation passen
(das macht aber hier ein "vollständiges" Backup der Card - dauert entsprechend lange wenn im /history Ordner auch noch recht viele Dateien drin sind)
Bash Script:
Code: Alles auswählen
#!/bin/bash
cd
source /root/.lftp/controllerip.txt
killall lftp
echo "FTP backup running..."
echo "Backup running... " > /root/.lftp/status.log
rm /root/.lftp/debug.log
mkdir -p /var/www/poolcontroller_backup/KW`date +%V`
touch /root/.lftp/backup.log
echo "Prüfe Dateien..." > /root/.lftp/backup.log
lftp $controllerip -u $username,$password<<!
debug -o /root/.lftp/debug.log
set net:timeout 5
set net:reconnect-interval-base 10
set net:reconnect-interval-max 20
set net:max-retries 2
mirror -c / /var/www/poolcontroller_backup/KW`date +%V` --log=/root/.lftp/backup.log
close -a
exit
!
echo "Changing permissions"
chmod -R 755 /var/www/poolcontroller_backup
bash /root/.lftp/check
echo "Backup done"
echo "Backup finished $(date)" > /root/.lftp/backup.log
Controllerip.txt hat folgenden Inhalt
Code: Alles auswählen
controllerip="10.9.130.10" #muss natürlich die IP zum Controller sein
controllerport="80"
username="dein username"
password="dein passwort"
Bash script "check" (kann man auch weglassen, dann die Zeile (
bash /root/.lftp/check) oben im anderen Bash Script auskommentieren/rauslöschen
Code: Alles auswählen
#!/bin/bash
cd
var=$(grep 'Timeout - reconnecting' /root/.lftp/debug.log)
lenght=${#var}
var2=$(grep 'QUIT' /root/.lftp/debug.log)
lenght2=${#var2}
var3=$(grep 'Socket error' /root/.lftp/debug.log)
lenght3=${#var3}
prozess=$(pgrep lftp)
plenght=${#prozess}
if [ "$lenght" -ne "0" ] || [ "$lenght3" -ne "0" ]; then
if [ "$lenght2" -eq "0" ] && [ "$plenght" -ne "0" ]; then
echo "Running, connection errors occured" > /root/.lftp/status.log
else
echo "Failed due to connection errors" > /root/.lftp/status.log
echo "Backup finished $(date)" > /root/.lftp/backup.log
fi
else
if [ "$lenght2" -eq "0" ] && [ "$plenght" -ne "0" ]; then
echo "Running... " > /root/.lftp/status.log
else
echo "Finished without errors" > /root/.lftp/status.log
fi
fi
FILESIZE=$(stat -c%s /root/.lftp/backup.log)
if [[ $FILESIZE < 2 ]]; then
echo "Backup finished $(date)" > /root/.lftp/backup.log
else
exit
fi
exit