linux - 複数ファイル - ラズパイ scp




Linux Bashでローカルファイルにデータを保存せずにSFTP経由でリモートファイルにデータを転送するには? (2)

/etc/fstab tmpfsパーティションを作成してください(ドライブに保存されていない、メモリ内のみ)。ファイルをそこに保存し、ハードドライブにファイルを保存しないようにしたい場合は、

私はこの方法/tmp/var/logをSSDドライブ全体に書くのを避けるために設定しました:

# <file system> <mount point>   <type>  <options>       <dump>  <pass>
none    /tmp/       tmpfs   size=15%    0   0

私はSFTPを介してメモリからリモートファイルにデータを転送できる必要があります。 私はもともとこれをSSHで処理していましたが、作業中に私はリモートロケーションへのSSHアクセスはなく、SFTPアクセスのみがあることがわかりました。

私が持っていたオリジナルのSSHコードの例を次に示します。

echo "secret_data" | ssh [email protected] cat > secret_file;

これはまさに私が必要とするものですが、何らかの形のものです:

sftp [email protected] put $secret_data secret_file;

基本的には、ローカルマシン上のファイルに決してデータを格納しないで、メモリから完全に処理する必要があります。

すべての返信を高く評価しました。 ありがとう。


マルチプロトコルクライアントlftpは、シーク不可能なファイルディスクリプタからコンテンツを読み取ることを明示的にサポートしています。

#!/bin/bash
#      ^^^^ some features used here are not present in /bin/sh

lftp \
  -u remote_username                 \
  -e 'put -o /tmp/secret /dev/stdin' \
  sftp://remote_host                 \
  < <(printf '%s' "$secret_data")

<<<とは対照的に<()を使用することに注意してください(後者は現代のLinuxで/dev/fdスタイルのリダイレクトになるか、実装されることがあります他のプラットフォームではFIFOを使用しています)。







sftp