rsyncユーティリティを使用すると、PCと外部ハードドライブ間でファイルを転送および同期できます。 また、ローカルエリアネットワーク経由ですべてのデバイスにファイルを送信するために使用することもできますが、そのためには受信側が正しいパスワードを入力する必要があります。 ただし、パスワードを使用せずにデバイスをrsyncするために使用できるトリックがあります。 SSHまたはSCPコマンドを使用してパスワードをバイパスする方法を学習します。
ハードドライブまたはSSDの速度をベンチマークする方法についての記事も参照してください。
パスワードを使用せずにRSYNCを実行する方法
sshでrsyncを設定し、パスワードなしで使用できます。 この機能は、rsyncを使用する場合の自動バックアップのためにcronジョブをスケジュールするのに最適です。 パスワードを回避する方法は次のとおりです。
まず、既存のパスワードを使用しながら、ssh経由でrsyncをテストする必要があります。
いつものように標準のrsyncを実行して、リモートサーバーでパスワードの入力を求められるようにします。 リモートサーバーが機能していることを確認するために、いくつかのファイルをコピーします。
この例を使用して、ローカルfolder/home/pies
をリモートfolder/backup/pies
と同期します。 192.168.188.15 serverコマンドを使用します。
このコマンドを実行すると、リモートサーバーでアカウントパスワードを入力するよう求められますrsync -avz -e ssh /home/pies/ :/backup/pies/
次のステップは、パスワードを要求する部分をスキップするようにsshを構成することです。 ローカルサーバーでssh-keygenコマンドを使用して、秘密キーと公開キーを作成します。 次のコマンドを使用します。
$ ssh-keygen
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
注:パスフレーズの入力を求められたら、セクションを空白のままにしてEnterキーを押します。
ssh-copy-id
を使用して、公開鍵をリモートホストにssh-copy-id
しssh-copy-id
。 次のコマンドを入力しますssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.188.15
次に、リモートホストでパスワードを入力するように求められます。公開キーを適切な場所にコピーする必要があります。
これで、すべてが設定されたら、パスワードなしでrsyncを実行できます。 次のコマンドを使用しssh 192.168.188.15
: ssh 192.168.188.15
パスワードを入力せずにrsyncします。 使用すべきrsync -avz -e ssh /home/pies/ :/backup/pies/
このrsyncバックアップを自動化し、cronでスケジュールすることもできます。
Linuxの他の実用的なRsyncコマンド
RsyncまたはRemote Syncを使用すると、ファイルをリモートでコピーおよび同期するなど、多くの作業をすばやく完了できます。 リモートで作業するときに速度を上げるために使用できる便利なコマンドを次に示します。
コンピューター上のファイルのコピーと同期
以下のコマンドは、ローカルコンピューター上の1つのファイルをある場所から別の場所に同期します。 backup.tar to /tmp/backups/ folder
というファイルbackup.tar to /tmp/backups/ folder
にコピーして機能させます。
]# rsync -zvh backup.tar /tmp/backups/
created directory /tmp/backups
backup.tar
sent 14.71M bytesreceived 31 bytes3.27M bytes/sec
total size is 16.18Mspeedup is 1.10
上記の例は、宛先のフォルダー/ディレクトリがrsyncにまだ存在せず、自動的に作成したい状況向けです。
コンピューター上のディレクトリのコピーと同期
次のコマンドは、すべてのファイルを1つのディレクトリから同じコンピューター上の別のディレクトリに同期または転送します。 次に例を示します/root/rpmpkts
はrpmパッケージファイルがいくつかあり、それを/tmp/backups/ folder
にコピーし/tmp/backups/ folder
。 次のコマンドを使用します。
]# rsync -avzh /root/rpmpkgs /tmp/backups/
sending incremental file list
rpmpkgs/
rpmpkgs/httpd-2.2.3-82.el5.centos.i386.rpm
rpmpkgs/mod_ssl-2.2.3-82.el5.centos.i386.rpm
rpmpkgs/nagios-3.5.0.tar.gz
rpmpkgs/nagios-plugins-1.4.16.tar.gz
sent 4.99M bytesreceived 92 bytes3.33M bytes/sec
total size is 4.99Mspeedup is 1.00
サーバーとの間でファイルとディレクトリをコピーおよび同期する
ディレクトリをローカルサーバーからリモートサーバーにコピーするには、次のコマンドを使用します。
]$ rsync -avz rpmpkgs/ :/home/
's password:
sending incremental file list
./
httpd-2.2.3-82.el5.centos.i386.rpm
mod_ssl-2.2.3-82.el5.centos.i386.rpm
nagios-3.5.0.tar.gz
nagios-plugins-1.4.16.tar.gz
sent 4993369 bytesreceived 91 bytes399476.80 bytes/sec
total size is 4991313speedup is 1.00
「rpmpkgs」フォルダーから必要なリモートサーバーにファイルを転送します。
リモートサーバーからローカルマシンにファイルをコピーする場合は、次のコマンドを使用します。
]# rsync -avzh :/home/tarunika/rpmpkgs /tmp/myrpms
's password:
receiving incremental file list
created directory /tmp/myrpms
rpmpkgs/
rpmpkgs/httpd-2.2.3-82.el5.centos.i386.rpm
rpmpkgs/mod_ssl-2.2.3-82.el5.centos.i386.rpm
rpmpkgs/nagios-3.5.0.tar.gz
rpmpkgs/nagios-plugins-1.4.16.tar.gz
sent 91 bytesreceived 4.99M bytes322.16K bytes/sec
total size is 4.99Mspeedup is 1.00
これを使用して、リモートファイルまたはディレクトリを同期し、ローカルマシンにコピーできます。
とにかくパスワードとRsyncをバイパスする
Linuxとリモートサーバーを頻繁に使用する場合、これらのコマンドを知っておくと便利です。これらのコマンドは、作業をより迅速に実行するのに役立つからです。 これらの基本的なコマンドを使用して、ファイルをコピーおよび同期できるようになりました。