リモートホストのスクリーンショットを撮り(使用xwd
)、これをpngに変換したい(使用convert
)。無人ワンライナーが必要なので、次のようにします。
sshpass -p THE_PASSWORD ssh [email protected] xwd -display :0 -root | convert xwd:- output.png
問題は、結果のPNGファイルが切り捨てられ、画面の上部のみが表示されることです。 2つのステップでプロセスを実行すると機能します。
sshpass -p THE_PASSWORD ssh [email protected] xwd -display :0 -root > output.xwd
convert output.xwd output.png
ただし、1つのコマンドでこれを行う必要があります。
convert
私はこれがリモートコマンドからデータが受信される速度に関連していると思いますxwd
。使ってみました。stdbuf
ここで述べたようにバッファサイズを増やしてみますが、あまり効果がないようです。
ImageMagick 6.7.8.9-15を使用しています。
答え1
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