나는 유닉스 멍청한 놈이므로 기다려주십시오 🙂
많은 파일을 다른 서버로 scps하는 스크립트가 있습니다.
이들이 z1.foo, z2.foo 등이라고 가정하십시오. 내가 원하는 것은 대상 서버에서 파일을 scp하고 5 일이 지난 파일을 삭제하는 것입니다.
대상에서 파일을 안전하게 삭제하려면 어떻게합니까?
감사.
답변
비 대화식으로 파일을 제거하려면
ssh hostname "rm -f z100.foo z200.foo"
답변
--delete
to 플래그를 사용하여 동일한 명령으로 두 작업을 수행 할 수 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"