Я новичок в 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