删除所有对象
在极度情形下,你可能需要删除整个cache,或至少某个cache目录。首先,你必须确认squid没有在运行。
让squid忘记所有缓存对象的最容易的方法之一,是覆盖swap.state文件。注意你不能简单的删除swap.state文件,因为squid接着要扫描cache目录和打开所有的目标文件。你也不能简单的截断swap.state为0大小。代替的,你该放置一个单字节在里面,例如:
# echo '' > /usr/local/squid/var/cache/swap.state
当squid读取swap.state文件时,它获取到了错误,因为在这里的记录太短了。下一行读取就到了文件结尾,squid完成重建过程,没有装载任何目标元数据。
注意该技术不会从磁盘里删除cache文件。你仅仅使squid认为它的cache是空的。当squid运行时,它增加新文件到cache里,并且可能覆盖旧文件。在某些情形下,这可能导致你的磁盘使用超出了自由空间。假如这样的事发生,你必须在再次重启squid前删除旧文件。
删除cache文件的方法之一是使用rm。然而,它通常花费很长的时间来删除所有被squid创建的文件。为了让squid快速启动,你可以重命名旧cache目录,创建一个新目录,启动squid,然后同时删除旧目录。例如:
# squid -k shutdown # cd /usr/local/squid/var # mv cache oldcache # mkdir cache # cho
.........................................................