web-dev-qa-db-ja.com

scpのようなsftpを使用する

OpenSSHの連中が言ったように "scpプロトコルは古くなっています" 、scp後の日について考える時が来ました。

ただし、sftpはインタラクティブな操作用に設計されているようです。 sftpのようなscpコマンドを使用する良い方法はありますか?つまり、sftpでこれを行う方法は?

scp ./myfile myserver:/home/myfile

または、良いscpの後継者はいますか?

4
mogya

sftp command は確かにコマンド(ftpなど)を中心に構築されています。したがって、scpのインプレース置換として機能することはできません。

次のようなワンライナーを使用できますが、

echo get /remote/path/file.txt /local/path.txt | sftp [email protected]

または

echo put /local/path.txt /remote/path/file.txt | sftp [email protected]

-b -を追加して、非対話型モードを強制することもできます。


興味深いことに(@Kamilが述べたように)、ダウンロードには、次のscpのような構文を使用することもできます。

sftp [email protected]:/remote/path/file.txt /local/path.txt

(2番目の引数の使用は文書化されていません)。


無料/オープンソース pscpコマンドラインクライアント もあります。これはPuTTYパッケージで提供され、Linuxで利用できます(Windowsでより一般的に使用されます)。 OpenSSH scpへの同一コマンドラインインターフェイスがあります。ただし、その名前とscpとは異なり、主に[〜#〜] sftp [〜#〜]クライアントです(フォールバックは可能ですが)サーバーがSFTPをサポートしていない場合は、SCPに送信します)。

その名前にもかかわらず、PSCP(他の多くの表面的なscpクライアントと同様)はこれらのプロトコルのいずれかを使用できます。

.。

通常、PSCPはSFTPプロトコルの使用を試み、サーバーでSFTPが使用できない場合にのみSCPプロトコルにフォールバックします。

PuTTY/pscpは次のようなapt-getでインストールできます。

Sudo apt-get install -y PuTTY
3
Martin Prikryl

Rsyncも検討する必要があります。 scpが許可するremote1-to-remote2転送を除いて、とにかくman scpのクイックリードから、rsyncにそれらすべてを非常に簡単に実行させるか、そうでないラッパーを作成できるようです。無痛。

Rsyncには、多くのオプションを使用しなくても、デフォルトで得られる他の利点があります(つまり、古いファイルを置き換えるときにはるかに効率的です)。

0
sitaram