自動化無しに生活無し

WEBとかAIとかLinux関係をひたすら書く備忘録系ブログ

リモートサーバーのデータを自動的にバックアップする方法論【scp+crontab】

thumbnail

手順

  1. crontabを使って、一定時間おきにリモートサーバーがバックアップを取る
  2. crontabを使って、一定時間おきに任意の端末がscpでリモートサーバーのバックアップファイルをDL
  3. crontabを使って、一定時間おきにリモートサーバーがバックアップしたデータを削除

方法

例えば、Djangoであればこうなる。

リモートサーバーの/etc/crontabに以下の設定を施す。

00 *   * * *   ubuntu   cd ~/Document/django/ && python3 manage.py dumpdata [任意のアプリ] > data.json
40 *   * * *   ubuntu   rm ~/Document/django/data.json

任意の端末の/etc/crontabに以下の設定を施す。

20 *   * * *   user     scp -i [公開鍵] ubuntu@[リモートホストのIP]:~/Document/django/data.json ./

これで毎時0分になればリモートサーバーがDBのデータをバックアップ。毎時20分になれば、任意の端末がscpでデータをDL。毎時40分でリモートサーバーはデータを削除する。

結論

crontabを組み合わせればこういうこともできる。

ただ、リダイレクトは上書きしているので、削除しなくても良いかも知れない。

スポンサーリンク

シェアボタン

Twitter LINEで送る Facebook はてなブログ