원격 호스트의 스크린샷을 찍고( 사용 xwd
) 이를 png로 변환하려고 합니다( 사용 convert
). 무인 원라이너가 필요하므로 다음과 같이 합니다.
sshpass -p THE_PASSWORD ssh [email protected] xwd -display :0 -root | convert xwd:- output.png
문제는 결과 PNG 파일이 잘려서 화면 상단 부분만 표시된다는 것입니다. 두 단계로 프로세스를 수행하면 작동합니다.
sshpass -p THE_PASSWORD ssh [email protected] xwd -display :0 -root > output.xwd
convert output.xwd output.png
하지만 단 하나의 명령으로 이를 수행해야 합니다.
convert
나는 이것이 원격 명령으로부터 데이터가 수신되는 속도와 관련이 있다고 생각합니다 xwd
. 나는 사용해 보았습니다.stdbuf
여기서 언급한 대로버퍼 크기를 늘려보지만 별 효과가 없는 것 같습니다.
ImageMagick 6.7.8.9-15를 사용하고 있습니다.
답변1
단 하나의 명령으로 수행해야합니다
"명령"이 단일 쉘 표현식을 의미하는 경우 다음과 같이 연결할 수 있습니다 &&
.
sshpass -p THE_PASSWORD ssh [email protected] xwd -display :0 -root > output.xwd && convert output.xwd output.png
또는 이것이 작동하지 않으면 다음을 사용할 수 있습니다.프로세스 교체:
sshpass -p THE_PASSWORD ssh [email protected] convert <(xwd -display :0 -root) output.png