Robocopyとrsyncのコマンドメモ
毎度のようにググっているのでメモ
Robocopy
前提条件
- 特定ドライブの全データを別ドライブにコピーするコマンド
- 宛先のデータは消さない
- 送り元はZ:\で送り先はD:\
使うコマンド
robocopy.exe Z:\ D:\ /copy:DAT /dcopy:DAT /E /XJ /R:3 /W:5 /XD "`$RECYCLE.BIN" "System Volume Information" ".DS_Store" /TEE /NP /UNILOG+:./robocopy.log /L
オプションの意味合い
- 公式ドキュメントは以下
- robocopy | Microsoft Docs
- 日本語版は機械翻訳がいまいちなので英語版の方がよさそう
オプション | 効果 |
---|---|
/COPY:DAT | ファイルのデータ・属性・タイムスタンプをコピー |
/DCOPY:DAT | ディレクトリのデータ・属性・タイムスタンプをコピー |
/E | 再帰的にコピーする。空ディレクトリを含む |
/XJ | ジャンクションを除外する。シンボリックリンクみたいなもの? |
/R:3 | 失敗したとき3回までリトライする |
/W:5 | リトライする時5秒待つ |
/XD | コピーから除外するディレクトリ名 |
/TEE | ログ出力と画面出力を同時に行う |
/NP | 進捗を表示しない。表示するとログが見にくくなる |
/UNILOG+ | ログをUnicodeで出力する。既にある場合は追記する |
/L | リストを表示するだけでコピーしない。いわゆるdry-run |
rsync
前提条件
- 特定ディレクトリの全データをリモートホストの同ディレクトリにコピーするコマンド
- 宛先のデータは消さない
- 送り元はローカルで送り先はhost.example.com
使うコマンド
screen
rsync --recursive --times --progress --verbose /path/to/dir/hoge user@host.example.com:/path/to/dir/
- 末尾の/の有無で挙動が変わるので注意する
- sshが切れた場合は
screen -ls
で調べてscreen -r
でアタッチ
オプションの意味合い
- 公式ドキュメントは
man rsync
オプション | 効果 |
---|---|
-r, –recursive | ディレクトリ内を再帰的にコピー |
-t, –times | タイムスタンプをコピー |
–progress | 進捗を出す |
-v, –verbose | 詳細を出す。これが無いと何がコピーされるか分からない |
-n, –dry-run | リストを表示するだけでコピーしない |