Backup Script Problem


ITWK

Member
Hallo zusammen, ich habe mir ein Backupscript gebaut, welches jedoch einen Fehler (Syntax error: end of file unexpected (expecting "fi")) hat, den ich nicht finde. Evtl. habt Ihr eine Idee?

#!/bin/sh

SUFFIX="tar.gz"
DATE=`date +"%d.%m.%Y"`
#FULLNAME="$DATE.$SUFFIX"
# taegliche sicherung: 7days ago - 7 backups rueckhalt
# woechentliche sicherung: 21days ago - 3 backups rueckhalt
DELDATE=`date +"%d.%m.%Y" -d "21days ago"`
#DELFILE="$DELDATE.$SUFFIX"

cd /var/www

for verzeichnis in *
do
if [ -d "${verzeichnis}" ] && [ "${verzeichnis}" != "html" ] && [ "${verzeichnis}" != "webalizer" ] && [ "${verzeichnis}" != "web_sqldumper" ] && [ "${verzeichnis}" != "lost+found" ]
then
echo "${verzeichnis}" >> /root/verzeichnisse.txt
# backupt das verzeichnis
FULLNAME="$DATE.${verzeichnis}.$SUFFIX"
tar czfv $FULLNAME
DELFILE="DELDATE.${verzeichnis}.$SUFFIX"

# verzeichnistransfer auf den ftp
ftp -inv 10.10.10.12 << EOF
user username passwort
cd kd6031
del $DELFILE
put $FULLNAME
bye
EOF

rm -f $FULLNAME
fi
done
 
Bitte Einrückungen und Strichpunkte korrigieren, so kann niemand die Logik erkennen, die du erreichen möchtest. Ansonsten könntest du ja gleich alles an Zeilenenden weglassen, wenn sowas egal wäre.
 
Hier nochmal als CODE gepostet und damit leserlich:
Code:
#!/bin/sh

SUFFIX="tar.gz"
DATE=`date +"%d.%m.%Y"`
#FULLNAME="$DATE.$SUFFIX"
# taegliche sicherung: 7days ago - 7 backups rueckhalt
# woechentliche sicherung: 21days ago - 3 backups rueckhalt
DELDATE=`date +"%d.%m.%Y" -d "21days ago"`
#DELFILE="$DELDATE.$SUFFIX"

cd /var/www

for verzeichnis in *
do
        if [ -d "${verzeichnis}" ] && [ "${verzeichnis}" != "html" ] && [ "${verzeichnis}" != "webalizer" ] && [ "${verzeichnis}" != "web_sqldumper" ] && [ "${verzeichnis}" != "lost+found" ]
        then
                echo "${verzeichnis}" >> /root/verzeichnisse.txt
                # backupt das verzeichnis
                FULLNAME="$DATE.${verzeichnis}.$SUFFIX"
                tar czfv $FULLNAME
                DELFILE="DELDATE.${verzeichnis}.$SUFFIX"

                # verzeichnistransfer auf den ftp
                ftp -inv 10.10.10.12 << EOF
                user username passwort
                cd kd6031
                del $DELFILE
                put $FULLNAME
                bye
                EOF

                rm -f $FULLNAME
        fi
done
 
du meinst so ? da klappt das irgendwie nicht mehr...

Fehler:
local: 30.05.2022.web89.tar.gz: No such file or directory
221 Goodbye. You uploaded 0 bytes and downloaded 0 bytes.
tar: Anlegen eines leeren Archivs wird feige verweigert.
»tar --help« oder »tar --usage« gibt weitere Informationen.


Code:
#!/bin/sh

SUFFIX="tar.gz"
DATE=`date +"%d.%m.%Y"`
#FULLNAME="$DATE.$SUFFIX"
# taegliche sicherung: 7days ago - 7 backups rueckhalt
# woechentliche sicherung: 21days ago - 3 backups rueckhalt
DELDATE=`date +"%d.%m.%Y" -d "21days ago"`
#DELFILE="$DELDATE.$SUFFIX"

cd /var/www

for verzeichnis in *
do
        if [ -d "${verzeichnis}" ] && [ "${verzeichnis}" != "html" ] && [ "${verzeichnis}" != "webalizer" ] && [ "${verzeichnis}" != "web_sqldumper" ] && [ "${verzeichnis}" != "lost+found" ]
        then
                echo "${verzeichnis}" >> /root/verzeichnisse.txt
                # backupt das verzeichnis
                FULLNAME="$DATE.${verzeichnis}.$SUFFIX"
                tar czfv $FULLNAME
                DELFILE="DELDATE.${verzeichnis}.$SUFFIX"

                # verzeichnistransfer auf den ftp
                ftp -inv 10.10.10.12 << EOF
                user username passwort
                cd kd6031
                del $DELFILE
                put $FULLNAME
                bye
EOF

                rm -f $FULLNAME
        fi
done
 
<<-EOF ist für Multilinhe-Texte.

Ich habe dein Skript ja nicht nachgetestet sondern nur auf die Formatierung hingewiesen.

Und was bitte klappt nicht, was für Fehlermeldungen?
 
Der erstellt nun keine tars der Verzeichnisse mehr die im www liegen. Die Verzeichniss. txt hat jedoch alle webs aufgelistet drin.
Fehler Bsp:
local: 30.05.2022.web89.tar.gz: No such file or directory
221 Goodbye. You uploaded 0 bytes and downloaded 0 bytes.
tar: Anlegen eines leeren Archivs wird feige verweigert.
»tar --help« oder »tar --usage« gibt weitere Informationen.
 
Würde mich doch wundern, wenn tar nicht so läuft wie bei Unix:
tar -cf dateiname.des.tar /verzechnis/pfad/dateien nochne.dat /noch/watt/*
 
Versteh ich grad nicht. Oder wir reden aneinander vorbei.
Ich lese alle Ordner aus /var/www ein und speicher die in verzeichnisse.txt dannach packe ich die Ordner aus der Verzeichnis.txt in der Schleife jeweils in eine tar. Hast du das Script mal ohne FTP Daten laufen lassen? Normal nutzt er also FULLNAME="$DATE.${verzeichnis}.$SUFFIX" für
30.05.2022.web111.tar.gz
 
tar braucht einen Dateiname zum Erstellen des tar.gz nach dem Schalter czf und die Dateiliste welche Dateien da rein sollen.
 
Ok habs mal bisl angepasst nun mit dem Dateinamen kommt noch EOF
Code:
#!/bin/sh

SUFFIX="tar.gz"
DATE=`date +"%d.%m.%Y"`
#FULLNAME="$DATE.$SUFFIX"
# taegliche sicherung: 7days ago - 7 backups rueckhalt
# woechentliche sicherung: 21days ago - 3 backups rueckhalt
DELDATE=`date +"%d.%m.%Y" -d "21days ago"`
#DELFILE="$DELDATE.$SUFFIX"

cd /var/www

for verzeichnis in *
do
        if [ -d "${verzeichnis}" ] && [ "${verzeichnis}" != "html" ] && [ "${verzeichnis}" != "webalizer" ] && [ "${verzeichnis}" != "web_sqldumper" ] && [ "${verzeichnis}" != "lost+foun$
        then
                echo "${verzeichnis}" >> /root/verzeichnisse.txt
                # backupt das verzeichnis
                FULLNAME="$DATE.${verzeichnis}.$SUFFIX"
                tar czfv $FULLNAME ${verzeichnis}
                DELFILE="DELDATE.${verzeichnis}.$SUFFIX"

                # verzeichnistransfer auf den ftp
                lftp <<SCRIPT
                set ftp:ssl-auth TLS
                set ssl:verify-certificate no
                open ftp://10.10.10.12:21
                user username passwort
                cd home
                rm $DELFILE
                put $FULLNAME
                exit
                SCRIPT

                rm -f $FULLNAME
        fi
done
 
ich nehme an, so wolltest du das:
lftp <<-SCRIPT

Ansonsten poste doch endlich mal die Fehlerausgabe des Shellprogramms hier.
 
Ja das - fehlte,
nun läuft er aber sieht komisch aus:
web120/tmp/1b42a77fe6df02c4b576249a103de1bd/var/www/web120/htdocs/wp-content/themes/Divi/includes/builder/frontend-builder/i18n/library/categories.php.bin
web120/tmp/1b42a77fe6df02c4b576249a103de1bd/var/www/web120/htdocs/wp-content/themes/Divi/includes/builder/frontend-builder/i18n/library/cate2.php.bin
...
 
Wobei wird das angezeigt? Beim Erzeugen des tar?
Wenn /var/www/web120/tmp/ existiert ist doch alles ok. ich kenne deine Verzeichnisstruktur nicht.
 
Ok nun kommt nur noch der Fehler:
rm: zugriff nicht möglich:550 DELDATE.web139.tar.gz: No such file or directory
Nun ist die Frage DELDATE ersetzt er es nicht korrekt ? Weil normal sollte dort ja das Datum drin stehen s.o.
 
Back
Top