シェルスクリプトの内容は以下の通りです。
シェルスクリプトを通じてデータベースを自動的かつ定期的にバックアップします。
#!/bin/bash
# hs_king データベースをバックアップする
# MySQL 接続情報を設定する
MYSQL_USER="ルート"
MYSQL_PASSWORD="123456"
MYSQL_DATABASE="hs_king"
# バックアップファイルの名前とパスを設定します
BACKUP_PATH="/root/SQL/mysql-file/"
BACKUP_FILENAME="$(日付 +%Y.%m.%d.%H.%M)-${MYSQL_DATABASE}.sql" BACKUP_FILE="$BACKUP_PATH$BACKUP_FILENAME"
# MySQL データベースをエクスポートする
mysqldump -R -u$MYSQL_USER -p$MYSQL_PASSWORD $MYSQL_DATABASE > $BACKUP_FILE # 期限切れのバックアップ ファイルを削除します: 過去 15 日間
find $BACKUP_PATH -type f -name "*-${MYSQL_DATABASE}.sql" -mtime +15 -exec rm {} \;
# ファイルの作成時刻に基づいて削除します
スクリプトの認可
chmod +x バックアップ_mysql.sh
crontabでタイミングタスクを追加
crontab -e
*/10 * * * * /root/SQL/backup_mysql.sh
バックアップデータベースを検証する
説明
このシェル スクリプトは、MySQL データベースのバックアップに使用されます。スクリプトの詳細な説明は次のとおりです。
-
2~6行目:MySQLに接続するための情報を設定します。実際の状況に応じて変数の値を変更できます。
MYSQL_USER
: MySQL ユーザー名、ここでは「root」に設定します。MYSQL_PASSWORD
: MySQL パスワード、ここでは「123456」に設定されています。実際の状況に応じて変更してください。MYSQL_DATABASE
: バックアップするデータベースの名前。ここでは「hs_king」に設定します。
-
9行目と10行目:バックアップファイルの名前とパスを設定します。
BACKUP_PATH
: バックアップ ファイルの保存パス。ここでは「/root/SQL/mysql-file/」に設定されています。ディレクトリが存在し、書き込み権限があることを確認してください。BACKUP_FILENAME
: 現在の日付 (年、月、日、時、分) にデータベース名を加えた形式のバックアップ ファイルの名前。
-
行 13:
mysqldump
コマンドを使用して、MySQL データベースをエクスポートします。-R
パラメーターは、ストアド プロシージャとトリガーをエクスポートするために使用されます。-u$MYSQL_USER -p$MYSQL_PASSWORD
MySQL に接続するためのユーザー名とパスワードを指定します。$MYSQL_DATABASE
バックアップするデータベースを指定します。> $BACKUP_FILE
エクスポートしたデータをバックアップファイルに出力します。
-
16行目:期限切れのバックアップファイルを削除します。
find $BACKUP_PATH
検索するパスを指定します。-type f
ファイルのみを検索することを示します。-name "*-${MYSQL_DATABASE}.sql"
照合するバックアップ ファイル名のパターンを指定します。「*」は任意の文字を表します。-mtime +15
15 日を超えて変更されたファイルのみが選択されることを示します。-exec rm {} \;
一致したファイルを削除します。
このスクリプトの機能は、指定された MySQL データベースをバックアップし、過去 15 日間のバックアップ ファイルを保持することであり、15 日より古いバックアップ ファイルは自動的に削除されます。このスクリプトを実行する前に、バックアップ ファイルが保存されるディレクトリが作成され、適切な書き込み権限があることを確認してください。なお、スクリプト内のMySQL接続情報やバックアップファイルのパスは実際の環境に合わせて変更してください。