簡體   English   中英

rsync:上傳后不要刪除源中的幾個文件

[英]rsync : dont delete few files in source after upload

我想編寫一個 shell 腳本來使用rsync在名為sourcedestination文件夾之間傳輸文件。

文件夾的內容

A
B
C
test1.log
test2.json

我想將所有文件從傳輸到目標,並想刪除除test1.logtest2.json之外的所有源文件

即在將所有文件上傳到目標后,文件夾的內容應為:

test1.log
test2.json

目標文件夾的內容應該是:

    A
    B
    C
test1.log
test2.json

我嘗試過

rsync -aP --timeout=120 --remove-source-files -e "ssh -o StrictHostKeyChecking=no -i /id" source user@1.1.1.1:/destination_path/ --exclude=test1.log --exclude=test2.json

但在這種情況下, test1.logtest2.json被排除在上傳本身之外。

但我希望所有文件都上傳到目的地,上傳后大部分文件從源中刪除,但希望在源中保留很少的文件。

有沒有辦法用rsync做到這一點?

正如user1934428指出的那樣,如果我使用--remove-source-files ,則無法在傳輸后保留某些文件不被刪除。 所以我最終使用了下面的解決方案,因為rsync必須被調用兩次,所以效率不高。

rsync -aP --timeout=120 --remove-source-files -e "ssh -o StrictHostKeyChecking=no -i /id" source user@1.1.1.1:/destination_path/ --exclude=test1.log --exclude=test2.json

rsync -aP --timeout=120 -e "ssh -o StrictHostKeyChecking=no -i /id" source user@1.1.1.1:/destination_path/ 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM