CentOS バックアップ BASH スクリプト

CentOS バックアップ BASH スクリプト

すべてを tar.gz ファイルにバックアップするためのスクリプトを書きました。大丈夫でしょうか? tar ファイルを実行後に別のサーバーに転送するにはどうすればよいでしょうか? 自分自身から FTP するには? このスクリプトを毎週の cron に組み込むつもりです。

#!/bin/bash

rm ~/backup.tar.gz #removes old backup
BACKUP_DIRS=$HOME #$HOME is builtin, it goes to /home/ and all child dirs
tar -cvzf backup.tar.gz $BACKUP_DIRS

# run tar -zxvf to extract backup.tar.gz

答え1

FTP は悪魔です。 RSA キーペアを使用した SCP は、ファイルをサーバー間で安全に移動するのに適した方法です。 スクリプトに関しては、問題ないようです。

答え2

変更するファイルがそれほど多くない場合は、大きな tar ボールを作成する代わりに rsync を使用するとよいでしょう。rsync は変更のみを送信するため、提案されている方法よりもネットワーク効率がはるかに高くなります。まずは次のようなものから始めてみましょう。

http://lifehacker.com/196122/geek-to-live--mirror-files-across-systems-with-rsync?tag=softwarersync

答え3

サーバーのサイズによっては、膨大な数の重複ファイルが作成されます。私なら、変更されたファイルのみをバックアップします。また、ファイルに日付と時刻のスタンプを付ける必要があります。

私ならこうします。

  • フルバックを月に1回または週に1回行う
  • その他の日については増分バックアップ
  • ファイルの復元を容易にするために日付と時刻をスタンプする

ファイルの変更日を確認する最も簡単な方法は次のとおりです。

date -r $file +%F

つまり、基本的にはそれを関数でラップし、関数が最後のバックアップの日付と一致しない場合は、それをアーカイブ/バックアップに追加します。それ以外の場合は、先に進みます。

HTH

関連情報