내 Bash 스크립트를 수정하는 데 도움이 필요합니다

내 Bash 스크립트를 수정하는 데 도움이 필요합니다

저는 bash 스크립트의 초보자입니다. 제가 하려는 것은 mysql에 대한 두 가지 종류의 백업 프로세스를 실행하기 위한 bash 스크립트를 만드는 것입니다. 첫 번째는 모든 mysql 데이터베이스를 단일 덤프 파일로 덤프하고 다른 하나는 각각을 백업하는 것입니다. 데이터베이스를 단일 파일로 저장하고 bash 스크립트를 만드는 데 필요한 몇 가지 팁과 아래와 같은 결과를 얻기 위해 검색했지만 예상대로 작동하지 않는 것 같습니다. 스크립트를 실행하려고 시도했지만 아무 일도 일어나지 않습니다. 문제를 해결하는 데 도움을 준 사람이 있어서 기쁩니다. .

#!/bin/bash

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

백업_모든_덤프(){
/nas/mysql/all_dump -maxlength 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 -maxlength 1 -type d -mtime +30 -exec rm -rf {} \;
mkdir -p "$BACKUP_DIR/all_users/$TIMESTAMP"
데이터베이스=`$MYSQL -e "데이터베이스 표시;" | grep -Ev "(데이터베이스|information_schema|performance_schema)"`
  $databases의 db용; 하다
  $MYSQLDUMP --force --opt --데이터베이스 "$db" | gzip > "$BACKUP_DIR/all_users/$TIMESTAMP/$db.gz"
완료
}

답변1

#!/bin/bash

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

백업_모든_덤프(){
/nas/mysql/all_dump -maxlength 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 -maxlength 1 -type d -mtime +30 -exec rm -rf {} \;
mkdir -p "$BACKUP_DIR/all_users/$TIMESTAMP"
데이터베이스=`$MYSQL -e "데이터베이스 표시;" | grep -Ev "(데이터베이스|information_schema|performance_schema)"`
  $databases의 db용; 하다
  $MYSQLDUMP --force --opt --데이터베이스 "$db" | gzip > "$BACKUP_DIR/all_users/$TIMESTAMP/$db.gz"
완료
}

함수를 호출해야 합니다.

backup_all_dump

함수를 호출해야 합니다.

backup_all_users

관련 정보