この記事では、rsyncコマンドを使用してファイルとディレクトリをコピーし、増分バックアップを作成する方法を紹介します。デモにはUbuntuを使用します。しかし、最新のLinuxディストリビューションは問題なく動作するはずです。それでは、始めましょう。
rsyncのインストール:
rsyncはすでにUbuntuにインストールされているはずです。ただし、何らかの理由でコンピューターにインストールされていない場合は、次のコマンドを使用して、Ubuntuの公式パッケージリポジトリから簡単にインストールできます。
$sudoaptインストールrsync-と
rsyncコマンドのフォーマット:
rsyncコマンドの基本的な形式は次のとおりです。
$rsyncオプションソース行き先
- ソース ファイル、ディレクトリ、またはネットワークパスにすることができます。
- 行き先 ディレクトリまたはネットワークパスにすることができます。
- rsyncには多くのオプションがあります。これらのオプションを使用して、rsyncの動作を変更できます。その過程で最も一般的なオプションのいくつかを見ていきます。
rsyncを使用するときは、次のことを知っておく必要があります。
- あなたが置く場合 / のディレクトリ名の後 ソース などのrsyncの myfiles / 、それはディレクトリ内からのみにすべてのファイルをコピーすることを意味します 行き先 。
- あなたが入れない場合 / のディレクトリ名の後 ソース などのrsyncの myfiles 、次にrsyncはすべてのファイルをディレクトリからにコピーします 行き先 ディレクトリを含みます。
- 入力した場合 行き先 存在しないディレクトリパスの場合、rsyncは必要に応じて自動的に作成します。
rsyncを使用したローカルファイルとディレクトリのバックアップ:
コンピュータ上のあるディレクトリから別のディレクトリにファイルをすばやくコピーできます。 rsync 。
たとえば、いくつかの重要なファイルが 〜/ダウンロード ディレクトリ。今、あなたはからすべてのファイルをバックアップしたいと思います 〜/ダウンロード USBサムドライブへのディレクトリ / dev / sdb1 ディレクトリにマウントされています / mnt / myusb 。
でいくつかのダミーファイルを作成しましょう 〜/ダウンロード ディレクトリ。
$接する〜/ダウンロード/テスト{{1..100}
次に、からすべてのファイルをコピーします 〜/ダウンロード ディレクトリから / mnt / myusb 次のrsyncコマンドを使用したディレクトリ:
$rsync-avzh〜/ダウンロード/ /mnt/myusb
ファイルをコピーする必要があります。
ご覧のとおり、ファイルは / mnt / myusb ディレクトリ。
全体をコピーすることもできます 〜/ダウンロード 次のようにUSBサムドライブへのディレクトリ:
$rsync-avzh〜/ダウンロード/mnt/myusb
ご覧のとおり、ディレクトリ全体がUSBサムドライブにコピーされます。
繰り返しますが、からすべてのファイルをコピーしたい場合 〜/ダウンロード 別のディレクトリへのディレクトリ (mydownloads /としましょう/) USBサムドライブで、次のようにrsyncを実行します。
$rsync-avzh〜/ダウンロード/ /mnt/myusb/mydownloads
ご覧のとおり、ファイルはUSBサムドライブに正しくコピーされています。
rsyncを使用したリモートファイルとディレクトリのバックアップ:
rsyncを使用すると、バックアップの目的で、ファイルとディレクトリをリモートサーバーからローカルファイルシステムまたはUSBサムドライブにコピーできます。ローカルファイルシステムからリモートバックアップサーバーにファイルとディレクトリをコピーすることもできます。 rsyncは、SSHを使用してファイルとディレクトリをリモートサーバーとの間でコピーします。
SSHサーバーパッケージが必要です( openssh-server Ubuntuの場合)および rsync ファイルのバックアップ目的でrsyncを使用する場合は、リモートサーバーにインストールされたパッケージ。
たとえば、ディレクトリのすべてのコンテンツ(ディレクトリを含む)をコピーするとします。 / www リモートサーバーからのディレクトリ www.example1.com パスにマウントされたUSBサムドライブに / mnt / myusb ローカルファイルシステム上。
これを行うには、次のrsyncコマンドを使用できます。
$rsync-avzh根@www.example1.com:/www/mnt/myusbノート: ここ、 根 リモートユーザー名です。 www.example1.com リモートサーバーのDNS名であり、 / www リモートサーバー上のディレクトリパスです。必要に応じて、DNS名の代わりにリモートサーバーのIPアドレスを使用することもできます。
初めてリモートサーバーに接続する場合は、次のメッセージが表示されることがあります。入力するだけです はい 次にを押します 。
次に、リモートユーザーのパスワードを入力します(私の場合は 根 )を押して 。
内のすべてのファイルとディレクトリ / www ディレクトリを含むディレクトリ / www 下のスクリーンショットにあるように、USBサムドライブにコピーする必要があります。
rsyncを使用して、ローカルファイルシステムからリモートサーバーにファイルをコピーすることもできます。
前の例では、 / www リモートサーバー上のディレクトリ。ここで、リモートサーバー内の一部のファイルが破損していて、バックアップからそれらを回復したいとします。
これを行うには、次のようにrsyncコマンドを実行します。
$rsync-avzh /mnt/myusb/www/根@www.example1.com:/www
次に、リモートサーバーのパスワードを入力して、を押します。 。
ファイルは、ローカルファイルシステムからリモートサーバーにコピーする必要があります。
rsyncで増分バックアップを取る:
このタイプのバックアップでは、 ソース と 行き先 ディレクトリは同期されます。にファイルが追加された場合 ソース ディレクトリ、それはに追加されます 行き先 ディレクトリも同様です。同じように、ファイルまたはディレクトリが ソース ディレクトリが削除され、 行き先 ディレクトリも同様です。
rsyncは、増分バックアップを取るための優れたツールです。
たとえば、ディレクトリがあります 〜/クラウド ユーザーの 家 ディレクトリ。ここで、パスにマウントされたUSBサムドライブにディレクトリの増分バックアップを作成します。 / mnt / usb1 リモートサーバー上 backup.example.com 。
ノート: 絶対必要です openssh-server と rsync これが機能するためにリモートサーバーにインストールされたパッケージ。
の増分バックアップを取るには 〜/クラウド 、次のコマンドを実行します。
$rsync-avzh - 消去 - 進捗〜/クラウド/ショボン@backup.example.com:/mnt/usb1/バックアップ
次に、リモートユーザーのパスワードを入力して、を押します。 。
の内容 〜/クラウド ディレクトリは、リモートサーバーのUSBサムドライブにコピーする必要があります。
ご覧のとおり、すべてのファイルはリモートバックアップサーバーにマウントされたUSBサムドライブにコピーされます。
それでは、ローカルファイルシステムからファイルを削除して、何が起こるか見てみましょう。
$rm〜/クラウド/packages.txt
ここで、rsyncを使用して、以前と同じコマンドでディレクトリを再度同期します。
$rsync-avzh - 消去 - 進捗〜/クラウド/ショボン@backup.example.com:/mnt/usb1/バックアップ
ご覧のとおり、ファイル packages.txt リモートバックアップサーバーにマウントされているUSBサムドライブからも削除されます。
次に進む場所:
rsyncの詳細については、rsyncのmanページを参照してください。 rsyncのマニュアルページには、rsyncのすべてのオプションに関する詳細な説明があります。ぜひチェックしてみてください。
次のコマンドを使用して、rsyncのマニュアルページにアクセスできます。
$男rsync
つまり、rsyncを使用してファイルをコピーし、Ubuntuで増分バックアップを作成する方法です。この記事を読んでくれてありがとう。