我用来curlftpfs
安装远程驱动器。不幸的是,由于文件位于远程端,我无法使用>>
操作。据我了解这个链接不可能附加到现有文件(除非我弄错了,请纠正我)。所以我有这样的功能:
LogMe()
{
p="$1"
DateTime=`date "+%Y/%m/%d %H:%M:%S"`
echo $DateTime' : '$p >> $logfile
}
$logfile
是使用挂载的远程文件curlftpfs
。如何修改我的函数以支持附加而不使用<<
?
答案1
最佳方法是简单地忽略此访问的curlftpfs,因为 ftp 协议有一个附加将数据添加到文件的命令。因此,为更新设置一次性 ftp 连接,例如:
echo $DateTime' : '$p |
curl --append -T - ftp://user:password@host/some/logfile
如果您不通过挂载点引用日志文件,则第二个 ftp 不应过度干扰curlftpfs。
但是,如果您不想使用第二个 ftp,则必须复制整个日志文件,添加该行,然后将其复制回来。该命令sponge
可以帮助您简化任务:
(cat $logfile; echo $DateTime' : '$p) | sponge $logfile
Sponge 将所有输入收集到一个临时文件中,然后“自动”将其重命名为输出文件。