Brauche Hilfe, um mein Bash-Skript zu reparieren

Brauche Hilfe, um mein Bash-Skript zu reparieren

Ich bin ein Neuling in Sachen Bash-Skripte. Ich versuche, ein Bash-Skript zu erstellen, mit dem ich zwei Arten von Backup-Prozessen für MySQL ausführen kann. Der erste besteht darin, alle MySQL-Datenbanken in eine einzelne Dump-Datei zu kopieren und der andere darin, jede Datenbank in einer einzelnen Datei zu sichern. Ich habe herumgesucht, um Tipps zum Erstellen eines Bash-Skripts zu bekommen und das Ergebnis ist wie unten, aber es scheint nicht wie erwartet zu funktionieren. Ich versuche, das Skript auszuführen, aber es passiert nichts. Ich bin froh, dass mir jemand helfen kann, das Problem zu beheben.

#!/bin/bash

ZEITSTEMPEL=$(Datum "+%d-%m-%Y")
BACKUP_DIR="/nas/mysql"
MYSQL=/usr/bin/mysql
MYSQLDUMP=/usr/bin/mysqldump

Backup_alles_dump(){
finde /nas/mysql/all_dump -maxdepth 1 -type d -mtime +30 -exec rm -rf {} \;
mkdir -p "$BACKUP_DIR/all_dump/$TIMESTAMP"
  $MYSQLDUMP --force --events --all-databases | gzip > "/$BACKUP_DIR/all_dump/$TIMESTAMP/dump.sql.gz"
}

Backup aller Benutzer
finde /nas/mysql/all_users -maxdepth 1 -type d -mtime +30 -exec rm -rf {} \;
mkdir -p "$BACKUP_DIR/alle_Benutzer/$TIMESTAMP"
Datenbanken=`$MYSQL -e "DATENBANKEN ANZEIGEN;" | grep -Ev "(Datenbank|Informationsschema|Leistungsschema)"`
  für db in $databases; machen
  $MYSQLDUMP --force --opt --databases "$db" | gzip > "$BACKUP_DIR/all_users/$TIMESTAMP/$db.gz"
Erledigt
}

Antwort1

#!/bin/bash

ZEITSTEMPEL=$(Datum "+%d-%m-%Y")
BACKUP_DIR="/nas/mysql"
MYSQL=/usr/bin/mysql
MYSQLDUMP=/usr/bin/mysqldump

Backup_alles_dump(){
finde /nas/mysql/all_dump -maxdepth 1 -type d -mtime +30 -exec rm -rf {} \;
mkdir -p "$BACKUP_DIR/all_dump/$TIMESTAMP"
  $MYSQLDUMP --force --events --all-databases | gzip > "/$BACKUP_DIR/all_dump/$TIMESTAMP/dump.sql.gz"
}

Backup aller Benutzer
finde /nas/mysql/all_users -maxdepth 1 -type d -mtime +30 -exec rm -rf {} \;
mkdir -p "$BACKUP_DIR/alle_Benutzer/$TIMESTAMP"
Datenbanken=`$MYSQL -e "DATENBANKEN ANZEIGEN;" | grep -Ev "(Datenbank|Informationsschema|Leistungsschema)"`
  für db in $databases; machen
  $MYSQLDUMP --force --opt --databases "$db" | gzip > "$BACKUP_DIR/all_users/$TIMESTAMP/$db.gz"
Erledigt
}

Sie müssen die Funktion aufrufen

backup_all_dump

Sie müssen die Funktion aufrufen

backup_all_users

verwandte Informationen