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 }