sql >> データベース >  >> RDS >> Mysql

MySQLとFTPバックアップをバックアップサーバーにバックアップするCronジョブを作成するにはどうすればよいですか?

    これは、lftpコマンドラインのftpクライアントを使用した非常に単純なアプローチです。

    backup.sh:

    mysqldump -f [database] | gzip > /backup/[database].dump.gz
    lftp -f /backup/lftp.script
    

    lftp.script:

    open backup.ftp.example.com
    user [username] [password]
    cd /backup
    mv webflag.dump.gz.8 webflag.dump.gz.9
    mv webflag.dump.gz.7 webflag.dump.gz.8
    mv webflag.dump.gz.6 webflag.dump.gz.7
    mv webflag.dump.gz.5 webflag.dump.gz.6
    mv webflag.dump.gz.4 webflag.dump.gz.5
    mv webflag.dump.gz.3 webflag.dump.gz.4
    mv webflag.dump.gz.2 webflag.dump.gz.3
    mv webflag.dump.gz.1 webflag.dump.gz.2
    mv webflag.dump.gz webflag.dump.gz.1
    

    注:このアプローチにはいくつかの問題があります:

    • ftpは暗号化されていないため、ネットワークを盗聴できる人は誰でも、パスワードとデータベースデータの両方を見ることができます。 gpg -e [key]を介してパイプすることでダンプを暗号化できますが、ftpパスワードは暗号化されません(sftp、scpがより適切な代替手段です)
    • 誰かがデータベースサーバーをハッキングした場合、このスクリプトのユーザー情報を使用してftpサーバーにアクセスし、権限に応じてバックアップを削除できます(これは現実の世界で発生しています: http://seclists.org/fulldisclosure/2009/Jun/0048.html


    1. カンマ区切りの文字列を解析して、Where句の文字列のINリストを作成します

    2. スナップショットレプリケーションを作成する方法

    3. Sqoop:mysqlドライバーの例外を読み込めませんでした

    4. Pythonを介してPython辞書をmysqlDBに保存する方法