Нужна помощь в исправлении моего скрипта Bash

Нужна помощь в исправлении моего скрипта Bash

Я новичок в bash-скриптах. Я пытаюсь создать bash-скрипт для выполнения 2 видов процессов резервного копирования для MySQL. Первый — это дамп всех баз данных MySQL в один файл дампа, а второй — резервное копирование каждой базы данных в один файл. Я ищу советы по созданию bash-скрипта и получаю результат, как показано ниже. Но, похоже, он не работает так, как я ожидал. Я пытаюсь выполнить скрипт, но ничего не происходит. Рад, что кто-то помог мне это исправить.

#!/bin/баш

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

резервное копирование_всех_дамп(){
найти /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"
}

резервное копирование_всех_пользователей(){
найти /nas/mysql/all_users -maxdepth 1 -type d -mtime +30 -exec rm -rf {} \;
mkdir -p "$BACKUP_DIR/all_users/$TIMESTAMP"
databases=`$MYSQL -e "ПОКАЗАТЬ БАЗЫ ДАННЫХ;" | grep -Ev "(База данных|информационная_схема|производительная_схема)"`
  для БД в $databases; сделать
  $MYSQLDUMP --force --opt --databases "$db" | gzip > "$BACKUP_DIR/all_users/$TIMESTAMP/$db.gz"
сделанный
}

решение1

#!/bin/баш

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

резервное копирование_всех_дамп(){
найти /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"
}

резервное копирование_всех_пользователей(){
найти /nas/mysql/all_users -maxdepth 1 -type d -mtime +30 -exec rm -rf {} \;
mkdir -p "$BACKUP_DIR/all_users/$TIMESTAMP"
databases=`$MYSQL -e "ПОКАЗАТЬ БАЗЫ ДАННЫХ;" | grep -Ev "(База данных|информационная_схема|производительная_схема)"`
  для БД в $databases; сделать
  $MYSQLDUMP --force --opt --databases "$db" | gzip > "$BACKUP_DIR/all_users/$TIMESTAMP/$db.gz"
сделанный
}

Вам нужно вызвать функцию

backup_all_dump

Вам нужно вызвать функцию

backup_all_users

Связанный контент