원격 디렉토리의 scp 파일 및 파일 삭제 [닫힘]

나는 유닉스 멍청한 놈이므로 기다려주십시오 🙂

많은 파일을 다른 서버로 scps하는 스크립트가 있습니다.

이들이 z1.foo, z2.foo 등이라고 가정하십시오. 내가 원하는 것은 대상 서버에서 파일을 scp하고 5 일이 지난 파일을 삭제하는 것입니다.

대상에서 파일을 안전하게 삭제하려면 어떻게합니까?

감사.



답변

비 대화식으로 파일을 제거하려면

ssh hostname "rm -f z100.foo z200.foo"

답변

--deleteto 플래그를 사용하여 동일한 명령으로 두 작업을 수행 할 수 rsync있습니다.

> ls -1 localdir/
a.foo
b.foo

> ssh remote-host "ls -1 remotedir/"
c.foo

> rsync -a --delete localdir/ remote-host:remotedir/

> ssh remote-host "ls -1 remotedir/"
a.foo
b.foo

--delete옵션은 소스에 존재하지 않는 대상 디렉토리에서 파일을 제거합니다. 파일이 삭제되는시기와 제외 된 파일을 처리하는 방법에 대한 몇 가지 선택 사항이 있습니다.

> man rysnc
...
--delete                delete extraneous files from dest dirs
--delete-before         receiver deletes before transfer (default)
--delete-during         receiver deletes during xfer, not before
--delete-after          receiver deletes after transfer, not before
--delete-excluded       also delete excluded files from dest dirs

매뉴얼 페이지에는 다음 경고도 포함되어 있습니다.

이 옵션을 잘못 사용하면 위험 할 수 있습니다! 중요한 파일이 나열되지 않도록하려면 어떤 파일이 삭제되는지 확인 하려면 먼저 --dry-run option( -n)를 사용하여 실행하는 것이 좋습니다 .


답변

사용자 이름과 포트 번호를 설정하려면 다음을 수행하십시오.

ssh root@203.0.113.123 -p22 "rm -rf /home/amzad/test.php"