增加通過lftp鏡像的時間偏移

增加通過lftp鏡像的時間偏移

我正在 GitLab 中開發一個 CI 運行程序,它應該透過 FTP 將更改的檔案傳輸到開發環境。

lftp似乎是一個很好的解決方案,因為它易於使用且不太複雜。

我用它來傳輸文件:

lftp -c "set ftp:ssl-allow no; open -u $USERNAME_DEV,$PASSWORD_DEV $HOST_DEV; mirror -Rvpn -O $PATH_DEV --ignore-time --parallel=10 --exclude-glob .git* --exclude .git/"

有問題的部分是-Rvpn參數集,特別是-n.這應該只鏡像較新的文件,這些文件很可能會透過檢查文件更改時間來運作。

現在我的儲存庫使用正確的時間,但我的伺服器提前一小時(GMT+2 而不是 +1),這將導致在檢查較新檔案時出現錯誤。

我可以刪除,-n但隨後整個儲存庫將被克隆,而不僅僅是更改的(因此較新的)檔案。

有什麼方法可以定義 的時間偏移量lftp,以便它在文件更改日期或類似的情況下添加 +1 小時?我檢查了手冊但沒有找到類似的東西。

答案1

如果您查看連結的手冊,lftp其中有一個選項可讓您定義遠端站點的時區。嘗試設定它並看看何時可以lftp正確補償可能是值得的。

ftp:時區(字串)

假定 LIST 指令傳回的清單中的時間為該時區。此設定可以是 GMT 偏移 [+|-]HH[:MM[:SS]] 或任何有效的 TZ 值(例如歐洲/莫斯科或 MSK-3MSD、M3.5.0、M10.5.0/3)。預設為 GMT。將其設為空值以採用環境變數 TZ 指定的本地時區。

此外,它還有一個忽略時間的開關(--ignore-time這可能使您能夠使其僅依賴文件大小和一些開關(--newer-than--older-than)來定義“重要”的時間,以便您可以以這樣的方式進行設定:並非所有文件都被傳輸。

相關內容