如何清空由nfs共享的文件?

我有一个设置,一个数据库服务器共享一些目录通过nfs与networking集群。

其中一个目录是apache日志文件,所以web服务器都写入统一的db服务器access.log。

我试图用cat / dev / null> access.log清除这个文件,但是这个命令什么都不做。

你知道我怎么清除它而不删除它? 谢谢,西蒙。

首先让我说,让所有的Web服务器通过NFS写入一个唯一的日志文件是一个非常糟糕的主意,所有types的问题都出现了,就像你现在面对的问题一样。

为了能够清空文件,首先需要重命名它,然后继续重新启动每个apache实例,直到文件没有被任何进程打开,然后才能删除它。

如果我可能会提出一个替代scheme,可以通过让apache写入本地日志来实现同样的目的,然后使用syslog-ng将日志发送到一台远程机器上,在这台机器上所有的日志都被收集到一台机器上,这是一种更灵活的解决scheme,我已经在这里logging了这个问题的howto

使用touch /path/filename.log创build一个零字节大小的文件