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"[Eメール保護]:/etc/test/

仕組みは次のとおりです。

wgetファイルをダウンロードして成功すると起動しますscp

注:を使用しているため、sudoこのコマンドを実行するたびにユーザーパスワードの入力を求められます。test

関連情報