저는 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