rsync メモ
fuji44
同期だけじゃなくコピーだけもできる。
構文
manpage のコピペ。
SYNOPSIS
Local: rsync [OPTION...] SRC... [DEST]
Access via remote shell:
Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
Push: rsync [OPTION...] SRC... [USER@]HOST:DEST
Access via rsync daemon:
Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST
オプション
個人的に気になったもの。これ以外はmanpageを参照。
-a, --archive
アーカイブモードで実行する。いろいろなオプションの詰め合わせオプション。
-a, --archive archive mode; equals -rlptgoD (no -H,-A,-X)
-c, --checksum
タイムスタンプとファイルサイズではなく、チェックサムでスキップを判定する。
-c, --checksum skip based on checksum, not mod-time & size
-r, --recursive
ソースディレクトリ以下を再帰。
-r, --recursive recurse into directories
-e, --rsh
リモートシェルを指定。例えば、sshを使いたいときに指定する。
-e, --rsh=COMMAND specify the remote shell to use
--delete
同期元にないものは削除する。
--delete delete extraneous files from dest dirs
--log-file
指定のファイルに実行結果を出力する。指定しないと出力しない。
--log-file=FILE log what we're doing to the specified FILE
--exclude
パターンにマッチするディレクトリやファイルを除外する。
--exclude=PATTERN exclude files matching PATTERN
以下のように複数指定すると指定したパターンのすべてを除外できる。
rsync -a --exclude="Cashe/" --exclude="Logs/" src dest
使用例
共通編
進捗が見えるようにする。
rsync -v --progress src dest
ローカル編
権限情報などを保ったままコピーする。
rsync -a src dest
リモート編
SSHでポート55555にアクセスし ~/send_dirディレクトリを192.168.1.1の /tmp/ 配下にコピー。
rsync -e "ssh -p 55555" ~/send_dir` 192.168.1.1:/tmp/
SSHでポート55555にアクセスし、192.168.1.1の/tmp/src_dir/配下のファイル、ディレクトリを再帰的に~/dest_dir/配下にコピー。実行結果を./rsync.logに出力する。
rsync -r -e "ssh -p 55555" --log-file=./rsync.log fuji44@192.168.1.1:/tmp/src_dir/ ~/dest_dir/