[英]rsync : dont delete few files in source after upload
我想編寫一個 shell 腳本來使用rsync在名為source
和destination
文件夾之間傳輸文件。
源文件夾的內容
A
B
C
test1.log
test2.json
我想將所有文件從源傳輸到目標,並想刪除除test1.log
和test2.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.log
和test2.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.