rsyncを使用してWindowsからUbuntuにファイルを転送する

rsyncを使用してWindowsからUbuntuにファイルを転送する

Windowsでrsyncとcygwinを使用してsshを介してWindowsボックスからUbuntuボックスにファイルを転送するのに問題があります。ファイル転送は開始されますが、サーバー側に新しく作成されたディレクトリとファイルは常にユーザー権限なしで作成されます。したがって、ディレクトリまたはサブディレクトリへの書き込みをさらに試みると、rsyncは多くの「許可拒否(13)」エラーの1つを返します。使用すべき正しい構文は何ですか?もっと明確なrsyncd.confファイルが必要ですか?

Windows側では、次のコマンドを実行します。

Patrick@ELWAH P:\Music
> rsync -avz --progress -h ./iTunes [email protected]:/mnt/largemarge

サーバー側では、次の権限を持つディレクトリを作成します。

patrick@Ceres:/mnt/largemarge$ ll
total 12
drwxr-xr-x 3 patrick patrick 4096 Jul  1 22:16 ./
drwxr-xr-x 3 root    root    4096 Jul  1 20:23 ../
d---rwx--- 5 patrick patrick 4096 Jul  1 21:52 iTunes/
patrick@Ceres:/mnt/largemarge$

Windowsの出力は、次のエラーで終了します。

Patrick@ELWAH P:\Music
> rsync -avz --progress -h ./iTunes [email protected]:/mnt/largemarge
[email protected]'s password:
sending incremental file list
rsync: recv_generator: mkdir "/mnt/largemarge/iTunes/Album Artwork/Cache" failed: Permission denied (13)
*** Skipping any contents from this failed directory ***
iTunes/Album Artwork/
iTunes/Album Artwork/Cache/
rsync: recv_generator: mkdir "/mnt/largemarge/iTunes/Album Artwork/Cloud Purchases" failed: Permission denied (13)
*** Skipping any contents from this failed directory ***
iTunes/Album Artwork/Cloud Purchases/
rsync: recv_generator: mkdir "/mnt/largemarge/iTunes/Album Artwork/Download" failed: Permission denied (13)
*** Skipping any contents from this failed directory ***
iTunes/Album Artwork/Download/
rsync: recv_generator: mkdir "/mnt/largemarge/iTunes/Album Artwork/Remote" failed: Permission denied (13)
*** Skipping any contents from this failed directory ***
rsync: recv_generator: mkdir "/mnt/largemarge/iTunes/Previous iTunes Libraries" failed: Permission denied (13)
*** Skipping any contents from this failed directory ***
rsync: recv_generator: mkdir "/mnt/largemarge/iTunes/iTunes Media" failed: Permission denied (13)
*** Skipping any contents from this failed directory ***
iTunes/Album Artwork/Remote/
iTunes/Previous iTunes Libraries/
iTunes/iTunes Media/

sent 2.10M bytes  received 13.33K bytes  103.31K bytes/sec
total size is 332.36G  speedup is 156,927.14
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1165) [sender=3.1.1]

答え1

rsyncオプションは-a実際には(manページによると)aliasesです-rlptgoD。このリスト-pのビットは「権限を維持する」ために使用されます。つまり、rsync はstat()ソースファイルで動作し、権限ビットをターゲットファイルにコピーします。

WindowsにはUnix権限がないため、cygwinは近似を提示する必要があり、これは必然的に制限されます。場合は、いいえコピー権限を要求すると、rsyncデフォルト権限ビットを使用してファイルとディレクトリが生成され、問題は発生しません。

同様の理由で除外できる「保存グループ」と「保存所有者」をそれぞれ示し-gます。-o

したがって、完全なコマンドは次のようになります。

rsync -rltvzD --progress -h <source> <destination>

関連情報