Besoin d'aide pour corriger mon script Bash


0

Je suis un débutant sur le script bash, ce que j'essaie de faire est de créer un script bash permettant d'exécuter 2 types de processus de sauvegarde pour mysql. La première consiste à vider toute la base de données mysql dans un seul fichier de sauvegarde et un autre consiste à sauvegarder chaque base de données en fichier unique, je cherche quelques astuces pour créer un script bash et le résultat ci-dessous, mais ne semble pas fonctionner comme prévu, j’essaie d’exécuter le script mais rien ne se passe, je suis heureux de pouvoir l’aider à le réparer .

#!/bin/bash

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

backup_all_dump(){ 
find /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_all_users(){ 
find /nas/mysql/all_users -maxdepth 1 -type d -mtime +30 -exec rm -rf {} \;
mkdir -p "$BACKUP_DIR/all_users/$TIMESTAMP"
databases=`$MYSQL -e "SHOW DATABASES;" | grep -Ev "(Database|information_schema|performance_schema)"`
  for db in $databases; do
  $MYSQLDUMP --force --opt --databases "$db" | gzip > "$BACKUP_DIR/all_users/$TIMESTAMP/$db.gz"
done
}

Réponses:


0
#!/bin/bash

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

backup_all_dump(){ 
find /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_all_users(){ 
find /nas/mysql/all_users -maxdepth 1 -type d -mtime +30 -exec rm -rf {} \;
mkdir -p "$BACKUP_DIR/all_users/$TIMESTAMP"
databases=`$MYSQL -e "SHOW DATABASES;" | grep -Ev "(Database|information_schema|performance_schema)"`
  for db in $databases; do
  $MYSQLDUMP --force --opt --databases "$db" | gzip > "$BACKUP_DIR/all_users/$TIMESTAMP/$db.gz"
done
}

Vous devez appeler la fonction

backup_all_dump

Vous devez appeler la fonction

backup_all_users

Cher Monsieur, est-il possible que je viens d'exécuter le script et d'exécuter ces processus sans appeler de fonction? Heureux de l'aide et TQ tellement
— Zainul Halim

Ajoutez ces deux lignes au bas de votre code pour exécuter les fonctions lorsque le code est exécuté: backup_all_dump [[line line]] backup_all_users
— ackwdw123
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.