ソースが変更されていないのにrsyncがNTFSディレクトリを更新するのはなぜですか?


2

私はたくさんの音声学的および文法的分析を伴う授業を受けています。彼らは私にWindows 10ネットワークのアカウントを与えました。私はMacとLinuxにずっと慣れているので(そしてWindowsの利用可能時間は限られているので)、私は自分のMacラップトップで仕事をする。

私は自分のNTFSディレクトリを自動マウントしましたが、それらのLANにはぎこちないものがあります。そのため、アプリの中には読み取り専用またはまったくアクセスできないものがよくあります。

その結果、私はローカルコピーで、そして頻繁に仕事をしています。 rsync 変更します。しかしrsync *は常にすべてのNTFSディレクトリを更新します。ディレクトリだけを更新し、ファイルは更新しません(実際に変更したものを除く)。これらのディレクトリの大部分、私はまだナビゲートしたことがない rsync サブディレクトリツリーのすべての部分で更新を報告します。それは大したことではありません - 数秒で終わります - それでもまだかなり奇妙です。

WindowsとNTFSは、決してアクセスされていないディレクトリに対して何をするのですか。


まあ、それもそれではありません。それはクレイジーです。私はそれが再び訪れていないディレクトリを更新していることに気づき、私はすぐにrsyncコマンドを繰り返しました。ディレクトリはありません。それから私はMac上でrsyncを繰り返しながらWindowsマシンにログインしました。 Windowsデスクトップが表示された瞬間に、rsyncは即座にそれらすべてのディレクトリを更新しました。しかし、それはWindowsがログインしている限りそうし続けました。よく、私は、多分それは不必要なリフレッシュをしているCPU時間を浪費していると思いました。そこでログアウトしました。 rsync 続く それらのディレクトリを更新します。だから私は初めに戻って、すなわちDUNNOです。
WGroleau

“ rsync -av --bwlimit = 200 --delete --modify-window = 5(HFS +)(NTFS)”に変更ウィンドウを追加すると、未訪問ディレクトリの更新が停止しました。しかし一日後にそれはそれをまたやりました。すぐに繰り返しても更新されませんでした。 Windowsにログインすると、それが再び起こりました。しかし、それ以来、Windowsにログインしているかどうかにかかわらず、毎回発生します。 rsyncコマンドがほんの一瞬離れていても。繰り返しますが、不要な更新があっても、ほんの1秒で済みますので、大したことはありません。しかし、それはファイルリストを読むことをあまり便利にしません。
WGroleau

回答:


1

精度を下げてmod-timesの比較を可能にする

このようなセットアップでは、NTFSパーティションにマウントして、次のような適切なパラメータを使用するようにします。 --modify-window=5 デフォルト値を増やして精度の低いmod-timesを比較できるようにします。

--modify-window 

    When comparing two timestamps, rsync treats the timestamps as
    being equal if they differ by no more than the modify-window value. This 
    is normally 0 (for an exact match), but you may find it useful to set 
    this to a larger value in some situations. In particular, when
    transferring to or from an MS Windows FAT filesystem (which represents               
    times with a 2-second resolution), --modify-window=1 is useful (allowing 
    times to differ by up to 1 second).

その他の資料


最初の答えは変な行動を一時的に止めたので、私はそれを受け入れました。それから、奇妙な振る舞いが戻ってきたので、Windowsにログインするとタイムスタンプが変わると思いました。しかし、それは間違っていることが判明したので、Windowsからログアウトするとタイムスタンプの変更が止まると思いましたが、それも失敗しませんでした。それで私はしぶしぶ答えを受け入れませんでした、なぜならPJIのアドバイスは一日働いたけれどもそれはもはや働かないからです。そして私はもうBill Gatesを責めることはできません - 彼は私がする前に引退しました。
WGroleau

@ WGroleau私はあなたがあなたの問題を解決するのに役立つと思うかもしれないもう一つの答えを追加しました。どうなるか教えてください。これはやや同等です Robocopy /FFT 私が混乱したときに私が以前に追加したスイッチ、そして気がついたらそれを削除した。 。 。 RsyncはRobocopyではありません。
Pimp Juice IT

学校はまた1テラバイトの "OneDrive"を契約したので、私はそれを試すことにしました。ちょっと吸います。そうでない場合、すべてが最新であると言います。ローカルのWindowsから1ページのPDFを印刷するのに数秒かかります。 OneDriveからそれを行うには1分以上かかります。しかし、彼らは私にDropboxをインストールさせません。
WGroleau

0

プログラムの読み取り専用の問題に最初に答えます。ネットワーク共有はウィンドウによって制御されるため、ウィンドウは特定のユーザーに権限を付与することしかできません。それは公共の共有になる可能性があります、IE誰でもファイルectをダウンロードするためにそれを見ることができますが、そうすることができるように特に追加されない限りそれを変更しないでください。あなたはMacを使っているので、これはLinuxに似ています。あなたが使っているすべてのLinuxアプリケーションが、あなたが現在あなたのMacやLinuxにログインしているのと同じユーザー名を使っているわけではない。したがって、プログラムはあなたのログインユーザー名を使用していないため、ユーザー名が一致しないため、ウィンドウに応じてファイルを編集する権限は与えられていません。

次に、Rsyncは再帰的です。つまり、すべてのディレクトリを通過します。あなたがそれを特定のディレクトリに制限しない限り、しかしあなたがそれを1ディレクトリに制限したとしても、それはそれが始まったディレクトリの中にある全てのディレクトリを通過し続けるでしょう。これがその意図したことです。それゆえそれは呼ばれる再帰的同期です。ファイルではなくディレクトリを更新する理由は、rysncがディレクトリからタイムスタンプを取得する方法にあります。そのwindows 10ディレクトリには変更またはアクセスされたタイムスタンプがないので、ディレクトリが作成されたときのタイムスタンプだけがファイルにはこれらすべてのタイムスタンプがあるので、rsyncはディレクトリを更新する必要があるかどうかを判断します。ファイル


それはタイムスタンプでした。しかし、あなたの最初の部分は意味がありません。ディレクトリは自動マウントされます。つまり、Sambaは各アプリケーションからではなく、私のオペレーティングシステムからユーザー名とパスワードを取得しています。次に、「いつも」ではなく「かなり頻繁に」と言いました。 Mac OSは私のユーザー名やパスワードをランダムに変更しませんし、Windowsは変更しません。アクセスの問題は、パブリック共有と、おそらく私だけのディレクトリの両方で発生します。また、読み取り専用で、アクセスできない場合もあります。症状が頻繁に変わるので、私は私の「彼らのLANにぎこちない何か」を待ちます。
WGroleau

Mac OSはLinuxのそれと同様に動作します。 Linuxでは、インストールされているすべてのソフトウェアが、あなたがログインしているのと同じユーザー名で実行されるわけではありません。あなたがそれをインストールしたならばApache Webサーバの例を考えると、デフォルトでユーザwww-dataを使います。しかし、あなたはまだあなたの現在ログインしているユーザ名の下でそれを使うことができます。現在、Windows共有では、プログラムが現在ログインしているユーザー名で実行されていない場合(Windows共有がその共有を使用していると想定しているもの)、別のアクセス許可が与えられる可能性があります。また、sambaの設定方法によっても異なります。
Frostalf

(1)スティッキービットが設定されているアプリケーションがありません。それらはすべて私のように走ります。 (2)もしそれがパーミッションエラーであれば、時々問題なく、時にはパーミッション、時々他のもっと不可解なメッセージの代わりに毎回そう言うでしょう。 (3)パーミッションエラーであれば、rsyncも機能しません。
WGroleau

ディレクトリを読むことができるならあなたのコンピュータの方向に何かをrsyncすることができるので3番目のものはファイルを反対方向に送るためにはい、いいえを受け取るために完全に真実ではありません。とにかくポイント以外に。それから私はそれが正しいことを確認するためにあなたのsamba設定を調べるでしょう。 Windowsはファイル共有プロトコルのいくつかの異なる変種を持っているので、sambaが古いバージョンのwindowsプロトコルを使っている可能性があります。よくわからない。とにかくあなたの設定が問題ではないことを確認するために一見の価値があります。もう1つの問題は、アプリケーションが原因である可能性があります(バグなど)。
Frostalf

同じサーバー上の同じディスクに同じ構文でマウントされた2つのディレクトリがあります。この2つが常に同じ動作をしたり、/ etc / auto_smbが変更されていないときに5分早く動作したのと同じ動作をしたりするわけではありません。そのファイルの構文に誤りがあっても断続的には動作しません。ネットワークが不安定です。
WGroleau

0

明示的にを除外する -a との暗黙のオプション --no-OPTION

コメント:

“ rsync -av --bwlimit = 200 --delete”に変更ウィンドウを追加します。   --modify-window = 5(HFS +)(NTFS)」では、アクセスしていないディレクトリの更新を中止しました。   しかし一日後にそれはそれをまたやりました 。即時の繰り返しは更新されませんでした   それら。 Windowsにログインすると、それが再び起こりました。しかし、それ以来、それは   Windowsにログインしているかどうかにかかわらず、毎回発生します。たとえ   rsyncコマンドはほんの一瞬です。繰り返しますが、   不必要な更新、それはほんの1秒かかるので、大したことはありません。   しかし、それはファイルリストを読むことをあまり便利にしません。 Wグロロー

解決策として、これらのオプションを使用したテストを検討してください。

  •   --size-only             skip files that match in size
      -c, --checksum              skip based on checksum, not mod-time & size
      -O, --omit-dir-times        omit directories from --times
    

    ソース


さらに。 。 。

から -a--archive 暗黙のオプションを含み、以下と等価です。 -rlptgoD オプション:

  • -r, --recursive             recurse into directories
    -l, --links                 copy symlinks as symlinks
    -p, --perms                 preserve permissions
    -t, --times                 preserve modification times
    -g, --group                 preserve group
    -o, --owner                 preserve owner (super-user only)
    -D                          same as --devices --specials
    

    ソース

これらのオプションのいくつかを明示的に省略する必要があるかもしれません。 --no-OPTION 同期しているこれら2つの異なるファイルシステム間で、特定の属性が比較されないように[無視]します。

たとえば、次のようなものを追加します。

  • --no-o 所有者属性を無視します
  • --no-g グループ属性を無視します
  • --no-times 時間属性を無視します

重要: オプションの順序は重要です。 --no-r -a-r オプションがオンになってしまう -a --no-r

  • --no-OPTION
    
        You may turn off one or more implied options by prefixing the option name
        with lqno-rq. Not all options may be prefixed with a lqno-rq: only options   
        that are implied by other options (e.g. --no-D, --no-perms) or have 
        different defaults in various circumstances (e.g. --no-whole-file, --no-
        blocking-io, --no-dirs). You may specify either the short or the long option 
        name after the lqno-rq prefix (e.g. --no-R is the same as --no-relative).
    
    For example: if you want to use -a (--archive) but don't want
    
        -o (--owner), instead of converting -a into -rlptgD, you could specify -a --
        no-o (or -a --no-owner).
    
    The order of the options is important: if you specify --no-r -a, the
    
        -r option would end up being turned on, the opposite of -a --no-r. Note also 
        that the side-effects of the --files-from option are NOT positional, as it '   
        affects the default state of several options and slightly changes the 
        meaning of -a (see the --files-from option for more details).
    

    ソース


その他の資料


OneDriveが吸うので、私はこれをもっと詳しく見ることができます。また、私はちょうどこの関連質問を発見しました: superuser.com/questions/716549/rsync-on-ntfs-permissions?rq=1
WGroleau

@ WGroleau私はきっとあなたの最終的な解決策に興味があるでしょう。がんばろう!!私は助けようとしました!
Pimp Juice IT

残念なのは、私がWindowsに触れた唯一の理由は私の仕事の結果をMacで印刷することだということです。 Samba / WiFi経由でネットワークプリンタにアクセスしようとするのは、ファイルサーバにアクセスしようとするよりもさらに悪い。彼らは私にRobocopyを使わせないと確信しています。私の解決策は自分のプリンタを購入することかもしれないと思います。
WGroleau

@WGroleauあなたが簡単にテストするためのクイックカップルのアイデア(もしそれがうまくいけば私は答えを更新させていただきます)が、機会があればこれら二つのrsyncオプションを使ってチェック rsync -av --bwlimit=200 --delete --checksum (HFS+) (NTFS) または rsync -av --bwlimit=200 --delete --omit-dir-times --modify-window=5 (HFS+) (NTFS)
Pimp Juice IT

私はほとんどしました。幸運にも、私がリターンする前に、OneDriveのものをすでに並べ替えていたことに気づきました。今すぐ実行するのであれば、Windows、デスクトップ、ドキュメント、およびお気に入りを削除しようとします。 OneDriveがうまく動かない場合は、Walmartまで歩いて行き、寮の階下にあるネットワーク接続されていないプリンタ用の用紙を購入します。私はその試みに感謝します。いつかまたやらなければならないかもしれません。
WGroleau
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.