FTP Backupscript für meine SHELL

Martinoloff

New Member
Halli Hallölle,
ich suche ein Script womit ich möglichst per FTP oder sagen wir mal NUR per FTP backups erstellen und verschieben kann.
Ich stelle mir das ganze so vor.
______________________________________
Schritt 1. entweder zip erstellen (ist aber kein Muss, ich kann auch gerne das komplette /var/mysql verzeichnis verschieben.
Schritt 2. Das vorher vermerkte Verzeichnis wird per FTP auf einen externen Server geschoben. Es muss FTP sein weil ich kein rsync etc habe und mein Storage nur FTP kann.
Schritt 3. Gut wäre auch wenn das Script ältere Backups die älter als 3-5 Tage sind löscht.

Ich brauche also ein Script welches ich ausführe für mehrere verzeichnisse auf einem Server, die das Script mit FTP Daten auf den FTP Server verschiebt.

Vielleicht gibt es sowas schon fertig? Bei google bin ich soweit leider noch nciht wirklich zu einem Ergebnis gekommen.. :(
 
Ich verwendet tartarus für meine Backups und ein kleines selbstgeschriebenes Bash-Script, welches mir die MySQL-Datenbanken vorher dumpt.
Eine Anleitung für tartarus findest du beispielsweise bei Hetzner
 
Ja, dass Problem ist aber ich will es eigentlich nicht wirklich für mySQL verwenden sondern für andere wichtige verzeichnisse und benötige daher kein DUMP
 
Du hast meinen Beitrag anscheinend nicht richtig verstanden.
Da du bei MySQL-Datenbanken im laufenden Betrieb nicht einfach so die Dateien unter /var/lib/mysql weg sichern kannst, mußt du sie vorher per mysqldump dumpen. Genau diesen einen Vorgang macht bei mir ein kleines Bash-Script, welches ich selbst geschrieben habe. Außerdem erstelle ich mir eine Datei mit den installierten Paketen (Debian-System).
Anschließend kommt dann tartarus zum Zuge, welches diverse Verzeichnise von meinem Server per FTP auf den Backup-Space bei Strato schiebt (Webseiten, Mail-Spool, Konfigdateien, MySQL-Dumps).
Also bei mir: tartarus für die Sicherung per FTP (das willst du ja auch machen), eigene Scripte für Vorarbeiten wie das Dumpen von MySQL. Wenn du letzteres nicht benötigst, sollte tartarus deine Anforderungen eigentlich voll erfüllen.
 
backup-manager.org

Sichert Datenbanken via Dump, komprimiert Verzeichnisse und lädt sie versioniert oder inkrementell auf einen ftp/sftp hoch, bietet auch verschlüsselung an usw.

Benutze das Script seit ca nem Jahr, funktioniert einwandfrei und hat mir manches mal den Hintern gerettet.
 
Die Webseite von backup-manager.org ist nicht gerade vertrauenerweckend. Die Doku scheint nicht mehr existent zu sein, auf der Download-Seite gibt es nur eine ältere Version...
 
Hallo,

ich verwende folgendes Script.

Code:
#!/bin/sh
NAME="root-filebackup"
SUFFIX="tar.gz"
DATE=`date +"%d-%m-%Y"`
FULLNAME="$NAME-$DATE.$SUFFIX"
SQLNAME="datenbank-sqlbackup"
SQLSUFFIX="sql"
FULLSQLNAME="$SQLNAME-$DATE.$SQLSUFFIX"
 
cd /opt/sicher/backup
sudo mysqldump --opt -u root -p PASSWORD --all-databases > $FULLSQLNAME
 
tar czpfv $FULLNAME /verzeichnis1 /verzeichnis2
 
ftp -inv FTP_SERVER_ADRESSE << EOF
user FTP_USER FTP_PASSWORD
put $FULLNAME
bye
EOF
 
rm -f $FULLNAME
rm -f $FULLSQLNAME

Das Script habe ich hier gefunden (http://www.thomas-krenn.com/de/wiki/FTP_Backup_Script). Erfüllt super seinen Zweck
 
Hallo!

Ich nutze diesen Thread grad mal, passt super! :)

Hier ein Schnipsel aus meinen Script:
Code:
ATTACH=`for file in *$date.tar.gz; do echo -n -e "put ${file}\n"; done`

ftp -nv <<EOF
open $ftpserver
user $ftpuser $ftppassword
cd $ftpdir
mkdir backup_$date
cd backup_$date
$ATTACH
quit
EOF

Rufe ich den Code über mein Shellscript auf, bekomme ich folgende Meldung zurück:
Code:
Remote system type is UNIX.
Using binary mode to transfer files.
250 CWD command successful
257 "/test/backup_2012-01-03" - Directory successfully created
250 CWD command successful
[B]?Invalid command
?Invalid command[/B]
221 Goodbye.

Wenn ich nun genau diesen Text in die Konsole einhake, dann klappt es wunderbar mit dem Upload auf den FTP und schaut dann so aus:
Code:
Remote system type is UNIX.
Using binary mode to transfer files.
250 CWD command successful
257 "/test/backup_2012-01-03" - Directory successfully created
250 CWD command successful
local: files_2012-01-03.tar.gz remote: files_2012-01-03.tar.gz
200 PORT command successful
150 Opening BINARY mode data connection for files_2012-01-03.tar.gz
226 Transfer complete
170 bytes sent in 0.00 secs (8737.7 kB/s)
local: databases_2012-01-03.tar.gz remote: databases_2012-01-03.tar.gz
200 PORT command successful
150 Opening BINARY mode data connection for databases_2012-01-03.tar.gz
226 Transfer complete
116 bytes sent in 0.00 secs (7080.1 kB/s)
221 Goodbye.

Warum sagt er mir "?Invalid command" wenn es per Script ausgeführt wird? Die Dateien liegen an der richtigen Stelle, die er hochladen soll.

Danke! :)

EDIT: Das ist mir fast peinlich... Hab mich die ganze Zeit gewundert, wieso ich das Script nicht per./backup.sh ausführen konnte.. Es war einfach nicht ausführbar und ich hab es die ganze Zeit mit sh backup.sh ausgeführt... und, die sh kann scheinbar kein echo mit Schaltern.. grrr.. 4 Stunden wegen sowas :D
 
Last edited by a moderator:
Back
Top