Linuxで、rsyncコマンドを使用して、ディレクトリの内容を同期します。
記事の目次
ディレクトリとファイルを作成する!
同期元のディレクトリとファイルを作成します。
$ mkdir docs $ touch docs/text1.txt $ ls -lR docs docs/: total 0 -rw-r--r--. 1 usradmin usradmin 0 Sep 13 07:10 text1.txt
ディレクトリの内容のコピーを行う!
ディレクトリの内容をコピーします。ディレクトリの内容のバックアップを取得する場合は、「-a」オプションを使用します。「-v」は、詳細表示のオプションです。
$ rsync -av docs backup sending incremental file list created directory backup docs/ docs/text1.txt sent 145 bytes received 68 bytes 426.00 bytes/sec total size is 0 speedup is 0.00 $ ls -lR backup backup: total 0 drwxr-xr-x. 2 usradmin usradmin 23 Sep 13 07:10 docs backup/docs: total 0 -rw-r--r--. 1 usradmin usradmin 0 Sep 13 07:10 text1.txt
追加分のみコピーする!
「-u」オプションを使用して、追加分のみコピーします。
$ touch docs/text2.txt $ rsync -auv docs backup sending incremental file list docs/ docs/text2.txt sent 170 bytes received 39 bytes 418.00 bytes/sec total size is 0 speedup is 0.00 $ ls -lR backup backup: total 0 drwxr-xr-x. 2 usradmin usradmin 40 Sep 13 07:15 docs backup/docs: total 0 -rw-r--r--. 1 usradmin usradmin 0 Sep 13 07:10 text1.txt -rw-r--r--. 1 usradmin usradmin 0 Sep 13 07:15 text2.txt
圧縮機能を使用してコピーする!
「-z」オプションを使用して、圧縮してコピーします。圧縮は、コピー中のみです。
$ dd if=/dev/zero of=docs/text3.txt bs=1M count=100 100+0 records in 100+0 records out 104857600 bytes (105 MB, 100 MiB) copied, 0.0282156 s, 3.7 GB/s $ rsync -auzv docs backup sending incremental file list docs/ docs/text3.txt sent 3,406 bytes received 39 bytes 2,296.67 bytes/sec total size is 104,857,600 speedup is 30,437.62 $ ls -lR backup backup: total 0 drwxr-xr-x. 2 usradmin usradmin 57 Sep 13 07:18 docs backup/docs: total 102400 -rw-r--r--. 1 usradmin usradmin 0 Sep 13 07:10 text1.txt -rw-r--r--. 1 usradmin usradmin 0 Sep 13 07:15 text2.txt -rw-r--r--. 1 usradmin usradmin 104857600 Sep 13 07:18 text3.txt
削除も反映して完全同期する!
「--delete」オプションを使用すると、削除も反映されてディレクトリの内容が完全に同期されます。
$ rm docs/text3.txt $ rsync -auv --delete docs backup sending incremental file list deleting docs/text3.txt docs/ sent 127 bytes received 34 bytes 322.00 bytes/sec total size is 0 speedup is 0.00 $ ls -lR backup backup: total 0 drwxr-xr-x. 2 usradmin usradmin 40 Sep 13 07:20 docs backup/docs: total 0 -rw-r--r--. 1 usradmin usradmin 0 Sep 13 07:10 text1.txt -rw-r--r--. 1 usradmin usradmin 0 Sep 13 07:15 text2.txt
リモートのマシンにディレクトリの内容を同期する!
$ rsync -auv --delete docs usradmin@dpc001p1:/home/usradmin/backup The authenticity of host 'dpc001p1 (10.1.1.1)' can't be established. ED25519 key fingerprint is SHA256:wkIZB1feFgnpu4wuhd20fhHalln6ykab+FTgEUoJH3A. This key is not known by any other names Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added 'dpc001p1' (ED25519) to the list of known hosts. usradmin@dpc001p1's password: sending incremental file list created directory /home/usradmin/backup docs/ docs/text1.txt docs/text2.txt sent 213 bytes received 102 bytes 23.33 bytes/sec total size is 0 speedup is 0.00
おわりに
rsyncコマンドを使用すると、ディレクトリの内容の同期を容易に行うことができます。リモートのマシンへもディレクトリの内容の同期を行うことができるので、バックアップにも使用することができます。
関連記事