rsync
서버에 일부 스크립트를 보내고 싶은 상황이 있습니다 .
rsync -arh --stats --files-from="${LIST}" "${SRC}/" "${HOST}":"${DST}/"
다음 단계에서는 ssh
서버로 이동하여 일부 스크립트를 호출하겠습니다.
작업 완료 후 업로드된 파일 목록을 삭제하고 싶습니다.
간단히 말해서, 디렉터리 구조와 관련된 스크립트가 몇 개 있어서 다른 파일이 포함되어 있어서 ssh "${HOST}" rm -rf "${DST}/"
그런 건 생각이 안 난다 .${DST}
달성할 수 있는 방법이 있나요?실행 취소rsync
매우 멋진 도구 세트를 사용하지 않습니까 ?
답변1
< "$LIST" ssh $HOST xargs -i% rm "$DST/%"
단일 SSH 세션을 사용하십시오.
목록이 파일이고 디렉터리가 없다고 가정하면 후자를 선택 취소하는 것이 번거로울 수 있습니다.
편집: 이전 의견을 설명하려면 질문에 입력 파일 샘플이 포함되어 있지 않다는 점을 고려하여 이에 대해 가정해야 합니다.
입력 파일이 다음과 같은 경우 내 대답이 이를 처리할 수 있어야 합니다.
script1.sh
script2.sh
script3.sh
입력 파일이 다음과 같은 경우:
script1.sh
script2.sh
somedir/
(IE에는 완전한목차복사) 그러면 무엇을 삭제할지 아는 것이 더 어렵다는 것이 밝혀졌습니다 somedir/
(우리는 somedir/
로컬에서 열거하고 해당 정보를 사용하여 정리해야 합니다).
답변2
이미 파일 목록이 있으므로 가장 쉬운 방법(스크립트가 몇 개만 있다고 말씀하셨기 때문에)은 동일한 파일(예: file.list
)을 반복하고 삭제하는 것입니다.
다음과 같이 :
for r in "$(cat ${LIST})"
do
ssh "${HOST}" rm "${DST}/$r"
done