我是bash腳本的新手,我想做的是製作一個bash腳本來運行兩種mysql備份過程,第一個是將所有mysql資料庫轉儲到單一轉儲檔案中,另一個是將每個資料庫備份我將資料庫匯入到單一文件中,我四處搜尋以獲取一些製作bash 腳本的提示,結果如下,但似乎沒有按我的預期工作,我嘗試執行腳本但沒有任何反應,很高興有人幫我修復它。
#!/bin/bash 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 | $MYSQLDUMP --force --events --all-databases | $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” 資料庫=`$MYSQL -e“顯示資料庫;” | grep -Ev「(資料庫|資訊架構|效能架構)」` 對於 $databases 中的 db;做 $MYSQLDUMP --force --opt --databases "$db" | $MYSQLDUMP --force --opt --databases "$db" | $MYSQLDUMP --force --opt --databases "$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 -maxdepth 1 -type d -mtime +30 -exec rm -rf {} \; mkdir -p“$BACKUP_DIR/all_dump/$TIMESTAMP” $MYSQLDUMP --force --events --all-databases | $MYSQLDUMP --force --events --all-databases | $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” 資料庫=`$MYSQL -e“顯示資料庫;” | grep -Ev「(資料庫|資訊架構|效能架構)」` 對於 $databases 中的 db;做 $MYSQLDUMP --force --opt --databases "$db" | $MYSQLDUMP --force --opt --databases "$db" | $MYSQLDUMP --force --opt --databases "$db" | gzip >“$BACKUP_DIR/all_users/$TIMESTAMP/$db.gz” 完畢 }
您需要呼叫該函數
backup_all_dump
您需要呼叫該函數
backup_all_users