wgetとscpをパイプとして使用できますか?サーバーからファイルをインポートして別のサーバーにコピーしたいです。次のコマンドを使用しましたが、機能しません。
wget "$Select_Release_Version_ARTIFACT_URL" | sudo scp [email protected]:/etc/test/
答え1
パイプで使用するには、ファイルに書き込むのではなく書き込むことをwget
確認する必要があるため。stdout
wget -O- ...
scp
AFAIKのコピーは利用できませんstdin
。ただし、代わりにを使用してから読み取るssh
同様のコマンドを実行することができます。cat
stdin
だから一緒にあなたは次のようなものを得るでしょう
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_file
sudo
ssh
test
これはパイプの使用方法を示していますが、これを実行できない理由がない限り、リモート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