Shell-Script

如何在執行命令之前確認文件同步已完成?

  • May 14, 2019

我有一台電腦使用 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(如果它不存在,那麼顯然我們還沒有複製所有內容),如果存在,請檢查是否有類似的校驗和生成在接收方有一個匹配的校驗和。

引用自:https://unix.stackexchange.com/questions/518876