このコードは、MySQLデータベースのバックアップを作成し、古いバックアップを削除するためのPythonスクリプトです。以下はコードの説明です。
1. ライブラリのインポート:
– `os`: ファイルおよびディレクトリ操作のための機能を提供します。
– `time`: 時間に関連する機能を提供します。
– `subprocess`: サブプロセスの実行および制御を行います。
– `shutil`: ファイルおよびディレクトリの操作を高レベルで提供します。
2. バックアップ保存ディレクトリとMySQL接続情報の設定:
– `backup_dir`: バックアップファイルを保存するディレクトリのパスを指定します。
– `mysql_host`: MySQLサーバーのホスト名またはIPアドレスを指定します。
– `mysql_user`: MySQLに接続するためのユーザー名を指定します。
– `mysql_password`: MySQLに接続するためのパスワードを指定します。
3. `clean_old_backups(backup_dir)`関数の定義:
– 古いバックアップを削除するための関数です。指定されたバックアップディレクトリ内のバックアップを日付でソートし、最新の3つ以外を削除します。
4. バックアップディレクトリの作成:
– 現在の日時を含んだディレクトリを作成します。
5. データベースの一覧取得:
– MySQLの`SHOW DATABASES`クエリを実行して、データベースの一覧を取得します。
6. バックアップの作成:
– 各データベースごとにバックアップを作成します。
– バックアップはデータベースごとにフォルダが作成され、その中にテーブルごとのダンプファイルが保存されます。
– `information_schema.tables`をクエリして各データベースのテーブル一覧を取得し、`mysqldump`コマンドを使用してテーブルごとにダンプファイルを作成します。
7. バックアップ完了メッセージの表示。
8. `clean_old_backups(backup_dir)`関数を使用して古いバックアップの削除。
このスクリプトは、指定されたMySQLサーバーからデータベースのバックアップを取得し、日付ごとに保存します。また、バックアップディレクトリ内の古いバックアップを
制限された数に保つようにします。