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는 모든 입력을 임시 파일로 수집한 다음 "자동으로" 출력 파일의 이름을 바꿉니다.