rsync:「<dir path>」で時間を設定できませんでした


20

サーバー間でファイルを再同期しようとしていますが、このエラーが発生します

rsync:「/ dept / intranet / dept / atest /」で時間を設定できませんでした:操作は許可されていません(1)

誰かが私を助けることができますか?

パーミッションの問題だと思います。

これは私のコマンドです:

RSYNC=/usr/bin/rsync
SSH=/usr/bin/ssh
REMOTE_HOST=test.desktop

${RSYNC} -crlt -e ${SSH} ${LOCAL_DIR} ${REMOTE_HOST}:${REMOTE_DIR}

LOCAL_DIR = workplace1/f1/
permissions drwxr-xr-x   11 root     root         4096 Mar 19  2009 f1

REMOTE_DIR=/dept/intranet/dept/atest/f1/
permissions :drwxr-xr-x 14 dbld   a1     4096 Mar 19  2009 f1     

もっと情報をください。* rsyncコマンド*ローカル+リモートユーザー*ファイルのアクセス許可
ブライアンクロゼル

質問を編集しました。

回答:


26

ちょうど同じページにいます:

-r recursive
-l preserve links
-c sync based on file checksum
-t preserve modification times

それから2つのこと:

ただのファイルシステムです

宛先フォルダがNFSマウント、またはmod-timeを適切に処理しないファイルシステムである場合、破損します。

-O(for --omit-dir-times)パラメーターをコマンドに追加してみてください。

変更時刻は保持されますが、ディレクトリの場合は省略されます。

${RSYNC} -crlOt -e ${SSH} ${LOCAL_DIR} ${REMOTE_HOST}:${REMOTE_DIR}

ファイルの同期は機能しているようで、エラーはmod時間の同期で発生するため、これは私の推測です。とにかく、本当に変更時間を保存する必要がありますか?この-cオプションは、チェックサムに基づいてファイルをスキップします(したがって、modの時間は重要ではありません)。

または、実際には許可の問題です

  • スクリプトを実行しているユーザーは、宛先フォルダーを編集/書き込みするのに十分な特権を持っていますか?(試してみてくださいssh -vv test.desktop "touch /dept/intranet/dept/atest/f1/test"
  • スクリプトを実行しているユーザーは「Right One™」ですか(試用ssh -vv thegooduser@test.desktop "touch /dept/intranet/dept/atest/f1/test"

上記のどれでもない

-v詳細を表示するには、オプションを指定してコマンドを実行します。


1
--omit-dir-timesヒントをありがとう。本当に役立ちます。
JakeGould


1

私の場合、同期が行われた親ディレクトリに権限を付与することで問題を解決しました。

実際には、親ディレクトリの所有者は、同期を実行しているユーザー以外でした。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.