wget 및 scp를 파이프로 사용

wget 및 scp를 파이프로 사용

wget과 scp를 파이프로 사용할 수 있나요? 서버에서 파일을 가져와서 다른 서버에 복사하고 싶습니다. 다음 명령을 사용했지만 작동하지 않습니다.

wget "$Select_Release_Version_ARTIFACT_URL" | sudo scp [email protected]:/etc/test/

답변1

파이프에서 사용하려면 파일에 쓰는 대신 wget쓰는지 확인해야 하므로 .stdoutwget -O- ...

scpAFAIK, 에서 복사를 사용할 수 없습니다 stdin. 그러나 대신 을 사용하여 에서 읽는 ssh유사한 명령을 실행하도록 할 수 있습니다 .catstdin

그래서 함께 당신은 다음과 같은 것을 얻을 것입니다

wget -O- "$Select_Release_Version_ARTIFACT_URL" | ssh [email protected] 'cat > /etc/test/some_file'

개별 파일/웹페이지만 다운로드 및 전송된다는 점에 유의하세요. 또한 사용자에게는 생성 및 쓰기 권한이 test필요합니다 . before를 사용하면 원격 사용자에게 추가 권한이 부여되지 않습니다. 로컬 시스템에서 루트의 SSH 키에 대한 액세스를 허용하므로, 그럴 의도라면 그대로 유지하세요.192.168.94.137/etc/test/some_filesudosshtest

이는 파이프를 사용하는 방법을 보여주지만 , 이를 수행할 수 없는 이유가 없는 한 ssh원격 시스템에서 수행하는 것이 더 쉬울 것입니다 .wget

답변2

파이프 대신 사용할 수 있습니다 &&. 이렇게 하면 scp실행 시 wget종료 상태가 0(성공적으로 완료됨)이 됩니다 .

wget "$Select_Release_Version_ARTIFACT_URL" && sudo scp "$Select_Release_Version_ARTIFACT_URL"[이메일 보호됨]:/etc/test/

작동 방식은 다음과 같습니다.

wget파일을 다운로드하고 성공하면 시작됩니다 scp.

참고: 를 사용하고 있으므로 sudo이 명령을 실행할 때마다 사용자 비밀번호를 묻는 메시지가 표시됩니다.test

관련 정보