Railsプロジェクトを簡単にバックアップする

ご存知のように、人々は、まだバックアップを作成していない人、すでに実行している人、およびすでに実行して回復の可能性を確認している人に分かれています。

幸いなことに、20分前に、カピストラーノの曲がった管理レシピが、「バトル」サーバー上のユーザー記事からアップロードされた写真でディレクトリを完全に破壊したとき、私はすでにバックアップを作成するカテゴリに属していました。 ここで、同時にチェックしました。

そして、gem backupを介してバックアップを行います


いくつかのサーバーでホスティングしているクラウドでは、約20のユーザーサイトがスピンしており、これに加えてVoIP、RTMP、J2ME 、geisha 、およびWeb管理パネルを備えた1つの小さくても誇り高い(重い)アプリケーションがあります。 数ヶ月前、管理者が更新中にアスタリスクPBX構成を消去し、顎と青い唇を振って実行中のデーモンから復元すると、バックアップなしではさらに危険すぎることが明らかになりました。 しかし、それぞれがユーザー名とパスワードを使用してMySQLで独自のデータベースを使用する20のアプリケーションの「額に」バックアップを行うことは、あまり面白くなく退屈です。 それは長くて長いbashスクリプトであり、起動成功した直後には、このスクリプトの関連性を維持するために多くの時間を費やす必要があります。

これが、バックアップgemが役に立ちました。

バックアップgemはこれを行います:


次の3つの簡単なことを行うだけです。

1. gemをインストールします(gem install backup)

2.設定を作成します(デフォルトでは、gem実行可能ファイルは〜/ Backup / config.rbディレクトリで設定を検索しますが、追加オプションでこれを変更できます)。 私たちのサイトの1つの設定例:

Backup::Model.new(:kodepru, 'kodepru_backup') do

archive :my_archive do |archive|
archive.add '/path/to/dir/www.kodep.ru'
end

database MySQL do |db|
db.name = "wwwkodepru_production"
db.username = "user"
db.password = "password"
db.host = "mysql.local"
db.port = 3306
db.additional_options = ['--quick', '--single-transaction']
end

store_with SCP do |server|
server.username = 'backup'
server.password = 'verydifficultpassword'
server.ip = 'backup.local'
server.port = 22
server.path = '~/www.kodep.ru/'
server.keep = 14
end

compress_with Gzip do |compression|
compression.best = true
compression.fast = false
end

notify_by Mail do |mail|
mail.on_success = true
mail.on_failure = true

mail.from = 'backup@kodep.ru'
mail.to = 'sysadmin@kodep.ru'
mail.address = 'smtp.kodep.ru'
mail.port = 25
mail.domain = 'kodep.ru'
mail.user_name = 'backup@kodep.ru'
mail.password = 'password_ot_pochty'
mail.authentication = 'plain'
mail.enable_starttls_auto = true
end

end


この構成は、wwwkodepru_productionベースのダンプを取得し、一時ディレクトリにダンプし、サイトが存在するディレクトリを取得し、それをすべてアーカイブし、SCPを介してバックアップサーバーに保存する必要があることをgemに伝えます。

3. kronerで、たとえば午前0時にバックアップ実行--trigger kodepruコマンドを作成します。

...

利益!!!

当然、この設定を厳しい管理者の手で書くことはありません! レールのに書かた特別なソケットがあります。

ちなみに、Railsアプリケーションだけでなく、コードとベースを含むディレクトリで構成されていることを教えてくれます...

誰かが興味を持ってくれることを願っていますが、おそらく私たちの簡単なトリックについて書き続けるでしょう。

Source: https://habr.com/ru/post/J123401/


All Articles