Variablen für ein SFTP-Übertragungsskript

Variablen für ein SFTP-Übertragungsskript

Ich versuche Folgendes zu tun:

  • eine Datenbank exportieren (vielleicht eine .tgz-Datei daraus machen, das ist trivial)
  • Packen Sie einen ganzen Baum in eine .tgz-Datei
  • Kopieren Sie beide Dateien in ein benanntes Verzeichnis auf einem anderen Server.

ICHdürfenall diese Dinge mache ich mit dem aktuellen Skript (Bash), das ich derzeit habe. Aber da ich Dinge automatisieren möchte, brauche ich mehr Automatisierung.

Im Moment

  • Erstelle ein Verzeichnis mit dem heutigen Datum
  • mysqldump eine Datenbank in eine Datei mit einem Namen, der dieses Datum enthält
  • Erstellen Sie eine .tgz-Datei eines Verzeichnisbaums, wieder mit einem Namen, der das heutige Datum enthält
  • Verbindung zu einem Server über SFTP herstellen (oder SCP, ist egal... es ist ein Windows (S)FTP(S)-Server)
  • Hochladen einer (derzeit statischen) Datei in ein (derzeit statisches) Verzeichnis
  • Beenden Sie den SFTP-Server und geben Sie einen Status für den Upload aus.

Wandele ich die beiden Dateinamen in Variablen um, bevor ich eine Verbindung zum SFTP-Server herstelle, sodass ich sagen kann „put $filename1“ usw.?

Antwort1

Mit jeder POSIX-Shell (einschließlich bash) können Sie Befehle wie diese verwenden

# Today's date
today=$(date +'%Y-%m-%d')

# Create directory
mkdir "$today"

# Dump SQL backup
mysqldump … > "$today/sqlbackup.$today.sql"

# Make a tarball
tar cf "$today.tgz" "$today"

# Transfer file
scp -p "$today.tgz" remoteHost:

# Get a status report from the immediately preceding command
echo "Status is $? (0=good)"

verwandte Informationen