파이프라인 추가를 시뮬레이션하는 방법은 무엇입니까?

파이프라인 추가를 시뮬레이션하는 방법은 무엇입니까?

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

마운트 지점을 통해 로그 파일을 참조하지 않는 경우 두 번째 FTP는 컬ftpfs를 너무 많이 방해해서는 안 됩니다.

그러나 두 번째 FTP를 사용하지 않으려면 전체 로그 파일을 복사하고 해당 행을 추가한 다음 다시 복사해야 합니다. 이 명령은 sponge 작업을 단순화하는 데 도움이 될 수 있습니다.

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

Sponge는 모든 입력을 임시 파일로 수집한 다음 "자동으로" 출력 파일의 이름을 바꿉니다.

관련 정보