大家好 , 我剛接觸Linux沒有很久 , 想請教大家一個問題
最近碰到一個rsync的問題 , 儘管來源端與目的端檔案的內容與大小相同 , 但是只要目的端最後修改時間不是最新的 , 目的端還是會更新成來源端最後修改時間
狀況是這樣子 , 我在來源端更改 A檔案 , 又改回成原本的內容 , 這時候檔案內容跟最原本的時候一樣 , 只有最後修改時間是最新的 , 執行rsync -avu --ignore-times /tmp/A.txt ubuntu@IP:/tmp/
目的端 B檔案的最後修改時間就變成跟來源端的最後修改時間一樣
想請教大家 , 比對完檔案內容跟大小後 , 確定一樣應該就不會做差異備份 , 為何最後修改時間會更改
時間戳記不算『屬性』嗎?
單向可能比較單純
但如果是雙向,時間戳記可是非常重要的一項『屬性』=> 決定A覆蓋B或B覆蓋A
大小相同 ≠ 內容相同!!
大小相同 ≠ 內容相同!!
大小相同 ≠ 內容相同!!
a.txt內容:
12345
你把它改成:
67890
兩者檔案大小仍相同, 但是內容卻天差地遠, 沒有一個字一樣!!
rsync 只要看到 metadata 不同, 他就會複製, 不管你的內容.
所以, 不能用「檔案大小是否相同」來決定要不要同步檔案?
時間戳記才是最準確的, 一定是時間晚的去覆蓋時間早的檔案,
不要大小是否一樣....
他的問題好像還要多一步
12345 的時候 rsync 過
然後改成
67890
又再改成
12345
這時才又執行 rsync
他的癥結在這時後明明檔案內容確實是一樣的
只有檔案時間不一樣,且認為下了 -ignore-times
覺得rsync的行為不符合他的預期 XD
感謝各位回覆 @raytracy @wwx
可能我表達沒有完整 , 我的問題就像是 @wwx 所講的一樣
原本來源端 a.txt 是 12345
後來改成 67890
最後又改成 12345
此時 a.txt & b.txt 內容 與 大小是一樣的 , 只是最後修改時間不同
在執行rsync 後發現 , 目的端的最後修改時間變的跟來源端一樣
所以才想請問各位 , 是否不管檔案內容與檔案大小 , 只要執行過rsync , 最後修改時間就會同步呢