パイプラインの追加をシミュレートする方法は?

パイプラインの追加をシミュレートする方法は?

curlftpfs私はリモートドライブをマウントしました。残念ながら、ファイルはリモート側にあるため、>>その操作は使用できません。私が知る限りこのリンク既存のファイルに追加することはできません(間違えない限り修正してください)。だから、次の機能があります。

LogMe()
{
  p="$1"
  DateTime=`date "+%Y/%m/%d %H:%M:%S"`
  echo $DateTime' : '$p >> $logfile
}

$logfileマウントされたリモートファイルを使用してくださいcurlftpfs。を使用せずに追加をサポートするように機能をどのように変更できますか<<

答え1

最善のアプローチは、ftpプロトコルです追加ファイルにデータを追加するコマンドです。したがって、更新のためにワンタイムFTP接続を確立します。たとえば、次のようになります。

echo $DateTime' : '$p | 
curl --append -T - ftp://user:password@host/some/logfile

マウントポイントを介してログファイルを参照しない場合、2番目のFTPはカルftpfsをあまり妨害しないでください。

ただし、2番目のFTPを使用したくない場合は、ログファイル全体をコピーし、その行を追加してから再コピーする必要があります。このコマンドは、sponge 操作を簡素化するのに役立ちます。

(cat $logfile; echo $DateTime' : '$p) | sponge $logfile

Spongeはすべての入力を一時ファイルとして収集し、「自動的に」出力ファイルの名前を変更します。

関連情報