Shell-Script
如何在執行命令之前確認文件同步已完成?
我有一台電腦使用 Resilio Sync 定期與另一台電腦同步內容文件夾。接收電腦在每小時 cron 上有一個排序過程,該過程分析文件夾及其內容,然後在單獨的文件系統中移動和編目它們。
我的問題是如果同步不完整,每小時 cron 將執行並處理沒有完整內容的文件夾。每小時 cron 程序需要文件夾的全部內容才能正確處理內容。
有沒有一種簡單的方法可以檢查接收同步文件夾的內容是否打開,我已經查看了 lsof,但是也許有更簡單的方法?
如果有幫助,我可以從 resilio 同步過程切換到 rsync。
我懷疑有很多方法可以做到這一點。第一個來找我包括校驗和。在發送伺服器上,您可以執行:
tar -cf - FILES | md5sum > my_sum.md5
我們
tar
用來創建 (c
) 文件 (f
) 到stdin
(-
)上的文件FILES
可以是一個glob
、目錄或空間劃定的文件列表,然後通過管道傳輸到這些文件,md5sum
並將雜湊保存在 my_sum.md5 中。在接收方,您可以在您的
cron
工作中添加檢查以首先嘗試查找 my_sum.md5(如果它不存在,那麼顯然我們還沒有複製所有內容),如果存在,請檢查是否有類似的校驗和生成在接收方有一個匹配的校驗和。