ファイルとデータベースのバックアップ

スクリプト機能:

-ディレクトリとデータベースのバックアップ

-アーカイブをローカルフォルダーまたはftpにアップロードする

-成功/失敗の完了について電子メールで通知する





バックアップディレクトリ


バックアップディレクトリの作成は簡単です。 アーカイブするフォルダへの(パス)を示し、バックアップに名前を付けるだけで十分です(名前)。 必要に応じて、除外する(除外する)フォルダーとファイルを指定できます。

バックアップを作成する必要があるディレクトリの数は、複数になる場合があります



バックアップデータベース


データベースのバックアップも簡単に作成できます。 これを行うには、データベース名(db_name)を指定するだけです。 必要に応じて、一部のテーブル(テストテーブルなど)を除外したり、テーブルの構造(ログテーブルなど)のみをインポートしたりできます。 ディレクトリに関しては、データベースの数は複数にすることができます



バックアップをダウンロード


作成されたbykapは、ローカルフォルダーに保存するか、ftp経由でアップロードできます。 ここで、保持するコピーの数を指定することもできます。つまり、新しいアーカイブをロードした後、古いアーカイブは削除されます



バックアップ完了通知


バックアップが作成され、指定された場所に保存された後、電子メールアラートを設定できます。 正常に完了すると(on_success)、指定したレターテンプレート(テンプレート)が取得され、すべての統計情報が解析されて、指定したメールアドレスに送信されます。 エラーが発生した場合にレターを送信するように構成することもできます(on_failed)



使用する


設定例:

array( // common options 'common' => array( 'tar_cmd' => '/bin/tar', 'gzip_cmd' => '/bin/gzip', 'backup_filename_prefix' => $prefix, 'backup_filename' => 'backupname', ), // backup options 'backup' => array( // directory backup 'directory' => array( 'tar_cmd' => '/bin/tar', 'items' => array( array( 'name' => 'home_user1', 'path' => '/home/user1', 'exclude' => 'tmp,logs,cache', ), array( 'name' => 'home_user2', 'path' => '/home/user2', 'exclude' => 'tmp', ) ) ), // database backup 'mysql' => array( 'mysqldump_cmd' => '/usr/bin/mysqldump', 'user' => 'root', 'password' => 'xxx', 'host' => 'localhost', 'items' => array( array( 'db_name' => 'xxx', 'ignore_tables' => 'test', 'tables_structure' => 'logs,sessions', ), array( 'db_name' => 'xxx2', ), ), ), ), // upload backup options 'upload' => array( // upload to local directoey 'directory' => array( 'max_count' => 3, 'path' => '/backups', ), // upload to ftp 'ftp' => array( 'max_count' => 3, 'path' => '/backups', 'host' => 'xxx', 'user' => 'xxx', 'password' => 'xxx' ), ), // notification options 'nofification' => array( // email notification 'email' => array( 'on_success' => array( 'to' => 'xxx@xxx.xxx', 'subject' => 'Success backup', 'template' => realpath(__DIR__ . '/../Command/Notification/email_templates/success.php') ), 'on_failed' => array( 'to' => 'xxx@xxx.xxx', 'subject' => 'Failed backup', 'template' => realpath(__DIR__ . '/../Command/Notification/email_templates/failed.php') ), ), ),
      
      







使用例:

 $backupTask = new BackupTask\BackupTask($config); $backupTask->run();
      
      







クローンの例:

 @daily /usr/bin/php /path/to/backup.php daily @weekly /usr/bin/php /path/to/backup.php weekly @monthly /usr/bin/php /path/to/backup.php monthly
      
      







ソースはこちら



All Articles