问题描述#
用tab自动补全报错 No space left on device
1
# cd my-bash: cannot create temp file for here-document: No space left on device
1
2
3
4# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/dm-0 7.8G 7.8G 20K 100% /
...
暴力地用 rm -r /var/log/
删除,再次查看usr文件,发现var空间下已无log文件
1
2
3
4
5
6
7
8
9
10
11
12
13# rm -r /var/log/
# du -h --max-depth=1 /var
337M /var/lib
90M /var/cache
0 /var/tmp
48M /var/spool
6.3M /var/backups
0 /var/local
0 /var/opt
144K /var/mail
192K /var/initsh
481M /var1
2
3
4# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/dm-0 7.8G 7.8G 20K 100% /
...1
2
3
4
5
6
7
8
9
10
11
12
13# lsof -u root|grep var/log
rsyslogd 16083 root 5w REG 253,0 4149248 27063243 /var/log/auth.log (deleted)
rsyslogd 16083 root 6w REG 253,0 1463746560 27104493 /var/log/syslog (deleted)
rsyslogd 16083 root 7w REG 253,0 1826508800 27063246 /var/log/messages (deleted)
rsyslogd 16083 root 8w REG 253,0 3448832 27063245 /var/log/cron.log (deleted)
rsyslogd 16083 root 10w REG 253,0 2568192 27063241 /var/log/mail.log (deleted)
rsyslogd 16083 root 11w REG 253,0 2568192 27104495 /var/log/mail.info (deleted)
rsyslogd 16083 root 12w REG 253,0 2568192 27063239 /var/log/mail.warn (deleted)
rsyslogd 16083 root 13w REG 253,0 2564096 27063240 /var/log/mail.err (deleted)
rsyslogd 16083 root 14w REG 253,0 3464038 27063242 /var/log/daemon.log (deleted)
rsyslogd 16083 root 15w REG 253,0 20480 27063244 /var/log/user.log (deleted)
rsyslogd 16083 root 16w REG 253,0 528 27104496 /var/log/kern.log (deleted)
rsyslogd 16083 root 17w REG 253,0 528 27063254 /var/log/debug (deleted)1
2
3
4
5# /etc/init.d/rsyslog restart
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/dm-0 7.8G 4.7G 3.1G 61% /
问题思考#
暴力使用rm -r 清除正在被占用的文件例如 var/log,并不会释放磁盘空间。
可以在删除之前 先清空文件,再删除文件
这样能快速释放磁盘空间
1
2echo “” > xxx.log
rm -rf xxx.log
如何定期清理#
crontab指令可以定期执行命令, 对于定期清理日志, 当然也要用crontab。具体定期清理方式请阅读 crontab定期执行命令指令,