Hilfe zum Schreiben von Linux-Skripten zum Sichern und FTP-Dateien auf einem anderen Server

1

Ich verwende MySQL als Datenbanksystem für meine Anwendung auf einem Linux-System. Jede Woche aktualisiere ich das System und mache Backups (mysqldump) der geänderten Datenbanken (2 Datenbanken). Ich füge sie dann mit .tar.gz und ftp der resultierenden Datei zu einem Remote-Server hinzu. Danach entferne ich die ursprünglichen Backups und tar.gz-Dateien vom Linux-Server. Als absoluter Neuling in Sachen Unix-Systeme möchte ich wissen, ob es möglich ist, ein Skript zu schreiben, das dies alles automatisch erledigt, dh die folgenden Schritte ausführt.

1) Backup-Datenbank A nach A.sql (mysqldump) 2) Backup-Datenbank B nach B.sql (mysqldump) 3) tar -cvzf dest.tar.gz A.sql B.sql 4) ftp dest.tar.gz nach ftp @ remoteserver.com 5) Löschen Sie A.sql, B.sql, dest.tar vom lokalen Server

Es wäre toll, wenn ich ein paar Schritte in die richtige Richtung machen könnte! Vielen Dank im Voraus, Tim

TMM
quelle
Diese Frage ist möglicherweise besser für serverfault.com geeignet .
nhinkle
@nhinkle da stimme ich nicht zu ... ich denke es würde auch hier passen.
BloodPhilia
Es könnte gut funktionieren - ich habe nicht für den Abschluss gestimmt, ich dachte nur, er könnte bessere Ergebnisse von Leuten erzielen, die sich regelmäßiger mit solchen Dingen beschäftigen (Datenbanken sichern usw.).
Nhinkle
@nhinkle Okay! =)
BloodPhilia

Antworten:

1

Nachfolgend finden Sie ein einfaches Beispiel. Es gibt viele Beispiele für die Ausführung von mysqldump-Skripten, die ich gerade kurz eingefügt habe.

#! / bin / bash -e
# 

#Definieren Sie den Namen der Dumpfile
MYSQLBACKUP = / tmp / dbackup

# Führen Sie einen MySQL-Dump durch
#Ersetzen Sie den entsprechenden USER, das PASSWORT und die Pfade zu mysqldump, socket usw.
#Lassen Sie Ihre bevorzugte Methode fallen - tar versus gzip usw.
/ usr / bin / mysqldump --alle-Datenbanken -S /tmp/mysql.sock -uUSER -pPASSWORD | gzip -c> $ MYSQLBACKUP

#FTP-Sicherungsdatei auf Remote-FTP-Server
#Replace 192.1681.1.1 mit der IP-Adresse des Remote-Servers
# BENUTZER & PASSWORT ERSETZEN
echo "192.168.1.1 öffnen 
      BENUTZER PASSWORT  
      wortreich 
      cd / some / directory / on / remote / server
      Behälter 
      Prompt
      mput $ MYSQLBACKUP
      schließen 
      Beenden Sie "| ftp -n >> / tmp / somelogfile

#Entfernen Sie die Datei nach der Übertragung. Müssen Sie sicher sein, dass es zuerst ftp'd war
rm -f "MYSQLBACKUP"

George
quelle
Hallo! Danke für deine Antwort. Ich werde es auf jeden Fall ausprobieren. Eine Sache ... Ich habe die Zeile nicht verstanden: / usr / bin / mysqldump --all-databases -S /tmp/mysql.sock -uUSER -pPASSWORD | gzip -c> $ MYSQLBACKUP. Was macht der -S /tmp/mysql.sock? Und kann der mysqldump das Backup in einem Schritt zum gzip / tar leiten, ohne die .sql-Datei physisch zu erstellen? Vielen Dank!
TMM,
Sie werden das -S wahrscheinlich nicht für die Steckdose brauchen. Unter dem folgenden Link finden Sie ein detailliertes Beispiel für den Befehl mysqldump.
George
Ich bin auf Ubuntu Lucid Lynx und bekomme dies für ftp: `ftp: connect: Zeitüberschreitung der Verbindung Nicht verbunden. Ausführlicher Modus ein. Nicht verbunden. Nicht verbunden. Interaktiver Modus aus. `
TheVillageIdiot
0

hast du ssh auf dem remoteserver.com? - Wenn ja, ist es einfacher, Skripte mit scp aus der SSH-Tool-Suite und einem SSH-Schlüssel zu erstellen, damit Sie sich ohne Kennwort anmelden können. Auf diese Weise ist das Kopieren der Datei / das Ausführen eines Rsync-Vorgangs nur ein Befehl.

Sirex
quelle
Hallo, danke für deine Antwort. Der remoteserver.com ist ein Windows-Computer, daher weiß ich nicht, welche Optionen hier verfügbar sind ...
TMM