我正在安安静静的写(xia)代(dian)码(ying)呢,突然系统报了一个错,说磁盘已经没有可用空间了,然后系统就卡死了……….
吓得我一阵紧张,赶紧把我存的电影全部删除了,然后查了一下磁盘占有量.
删除我的视频之后我的硬盘才仅有9.4G的空间,我的空间都哪里去了???
然后在系统中搜索大文件,最后定位到我的/var/log目录
我可爱的42G,就这么没了,呵呵呵呵呵呵………
不得不说,日志是个好东西,但是像这样磁盘1/3都用来存储日志了,真是有点过了,所以定时做一些清理,是很必要的.
首先说一下错误的清理日志的方法
[bash]
rm -f logfile #这样做是错误的,因为应用已经打开文件句柄,这样操作会造成
#1.应用无法正确释放日志文件和写入
#2.显示磁盘空间未释放
[/bash]
百度了一下别人的方法:
[bash]
echo “” > /var/log/logfile #第一种方法
cat /dev/null > /var/log/logfile #第二种方法
[/bash]
但是这两种方法我执行之后是这样的结果:
想想也对,我的sudo仅仅是对cat和echo 起作用,并没有对重定向起作用,所以就说没有权限.
我最后用的是下面这种办法
[bash]
echo -n “” | sudo tee /var/log/bootstrap.log #这样就不会报错了
[/bash]
好了,写一个清理的脚本吧,其实可以把脚本加入到计划任务中去,定时清理.
[bash]
#!/bin/sh
sudo apt-get auto-clean
sudo apt-get clean
sudo apt-get autoremove
echo -n “” | sudo tee /var/log/messages
echo -n “” | sudo tee /var/log/user.log
echo -n “” | sudo tee /var/log/auth.log
echo -n “” | sudo tee /var/log/syslog
echo -n “” | sudo tee /var/log/apache2/access.log
echo -n “” | sudo tee /usr/local/nginx/logs/access.log
echo -n “” | sudo tee /usr/local/nginx/logs/error.log
exit
[/bash]
ok,运行一下,看一下磁盘,这下干净多了
好了,继续看电影….,奥不对,写代码了.