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


18

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

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

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

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

감사.


"대상에서 파일을 덮어 쓰십시오"? 원격 디렉토리에 이미 존재하는 파일들을 scp한다면 자동으로 덮어 쓰기됩니다
Aki

쉘 스크립트를 사용하여 파일을 로컬로 삭제하는 것이 좋습니다. 원하는 경우 언제든지 SCP 파일임을 의미합니다. 그러나 특정 폴더에서 파일을 제거하기 위해 매일 실행되는 쉘 스크립트가 있습니다. 여기서 파일을 유지하는 명령은 다음과 같습니다.find /path/to/files* -mtime +5 -exec rm {} \;
Zareh Kasparian

답변:


21

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

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

1
호스트 이름은 무엇입니까? 그렇 servername@ipaddress:path/to/dir/습니까?
HattrickNZ

1
호스트 이름은 그대로 user:password@ipaddress이거나 user:password@dnsname필요하지 않은 경우 암호를 생략 할 수 있습니다. 방금 시도했지만 root@somednsname정상적으로 작동합니다. path/to/dir나는 절대 경로로, rm 명령에 넣어 부분은,이 올바른지 확인합니다.
AsGoodAsItGets

6

--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)를 사용하여 실행하는 것이 좋습니다 .


2

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

ssh root@203.0.113.123 -p22 "rm -rf /home/amzad/test.php"
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.