彼はPython3の魔法の言語を学び始め、小さなVPSで試してみることにしました。
サーバーには、Mysql、Apache、nginxなどがあり、一般的には単純な標準セットで、そこにはホストされた20のクライアントサイトがあります。
毎日、知覚可能なスクリプト#!Bin / bashを使用して、すべてのデータベースとドメインファイルのバックアップコピーが作成されます。
Python 3を使用することにしました...コードは次のとおりです。
いくつかのメソッドを持つ単純なクラスを作成しました:
to_zip(self, file, filename=__current_date + '.zip', append_to_file=False)
このメソッドはファイルまたはフォルダーを受け入れ、CURRENT.zipという名前または自分の名前のアーカイブを作成します。append_to_file= Trueを渡すと、ファイルは既存のアーカイブに追加されます
run_backup(self, mysql_user, mysql_pw, db)
Linux mysqldumpユーティリティを使用して、データベースのバックアップコピーを作成します。メソッドは、USER NAME、PASSWORD、BASE NAMEを受け入れます
parse_options(self)
Parsimはオプションを渡しました。以下の例で詳しく説明します...
ftp_connect(self, host, username, password)
FTP接続を開きます。メソッドはFTPサーバーからHOST、USER NAME、PASSWORDを受け入れます
ftp_disconnect(self)
明確でない名前の明確でないメソッド)
upload_file_to_ftp(self, filename, folder='.')
このメソッドは、ファイル名とオプションでフォルダを受け入れます。ファイルのみがコピーされます。
remove_old_files_from_ftp(self, folder='.', day=3)
指定したフォルダーからN日より古いすべてのファイルを削除します。メソッドはそれぞれFOLDERとDAYSを受け入れます
そして今、このクラスをどのように使用するかの例:
def main(): backup_utils = BackupUtils() opts, args = backup_utils.parse_options()
最後に、コマンドをcronに追加します。
backup.py -p PASSWORD FOR DB -d NAME FO DB -D /PATH/FOR/WEB/SITE.COM/HTML/ --ftp-host FTP HOST NAME --ftp-user FTP USER --ftp-password FTP PASSWORD --ftp-delete-old --ftp-delete-day DAYS --ftp-folder FTP FOLDER
それだけです! 毎日、データベースとプロジェクトファイルのバックアップコピーが作成され、ftpにコピーされます。ftpサーバーを圧倒しないように、3日より古いコピーはすべて削除されます。