定时清理Linux中log文件的正确姿势 – 小孟博客 | 您所在的位置:网站首页 › 文件夹log › 定时清理Linux中log文件的正确姿势 – 小孟博客 |
![]() 虽说Linux几大发行版(Debian, Ubuntu, Redhat, Centos等)经过多年的发展,其自身在文件管理和系统优化等方面已经足够优秀,但是系统运行时间长了也会出现log日志文件占用空间过大的问题。一般地,Linux系统中log文件的目录位置在/Var/log文件夹中。对于硬盘容量较小的主机来说,如何正确清理该文件中的各个log文件就成了重要的问题。 判断log文件夹内容:首先通过ssh连接Linux主机,进入/Var/log文件夹,查看占用空间交大的log文件有哪些,下面是我的树莓派对应文件夹里面的内容: total 11200 -rw-r--r-- 1 root root 0 Feb 21 06:25 alternatives.log drwxr-xr-x 2 root root 4096 Feb 20 11:13 apt -rw-r----- 1 root adm 707071 Feb 21 13:49 auth.log -rw-r--r-- 1 root root 3894 Feb 21 11:38 boot.log -rw------- 1 root utmp 9697536 Feb 21 13:49 btmp -rw-r----- 1 root adm 379003 Feb 21 13:50 daemon.log -rw-r----- 1 root adm 7782 Feb 21 13:50 debug -rw-r--r-- 1 root root 66534 Feb 20 11:29 dpkg.log -rw-r----- 1 root adm 200784 Feb 21 12:40 kern.log drwx--x--x 2 root root 4096 Feb 21 11:38 lightdm -rw-r--r-- 1 root root 0 Feb 21 11:28 logfile -rw-r----- 1 root adm 30822 Feb 21 12:40 messages -rw------- 1 root root 1646 Feb 21 11:38 php7.0-fpm.log drwxr-x--- 3 root adm 4096 Feb 21 06:25 samba -rw-rw---- 1 root audio 150 Feb 21 11:38 shairport.err -rw-rw---- 1 root audio 81 Feb 21 11:38 shairport.log -rw-r----- 1 root adm 141823 Feb 21 13:50 syslog -rw-r----- 1 root adm 63783 Feb 21 12:11 user.log -rw-rw-r-- 1 root utmp 71808 Feb 21 13:44 wtmp -rw-r--r-- 1 root root 8568 Feb 21 11:38 Xorg.0.log 编写清理shell脚本:这里使用cat /dev/null命令清理各个log文件里面的内容,这里可以把/dev/null看作”黑洞”. 它等价于一个只写文件. 所有写入它的内容都会永远丢失. 而尝试从它那儿读取内容则什么也读不到。新建命名为clean_log.sh的shell脚本,内容如下: #!/bin/sh cat /dev/null > /var/log/alternatives.log cat /dev/null > /var/log/auth.log cat /dev/null > /var/log/boot.log cat /dev/null > /var/log/btmp cat /dev/null > /var/log/daemon.log cat /dev/null > /var/log/debug cat /dev/null > /var/log/dpkg.log cat /dev/null > /var/log/kern.log cat /dev/null > /var/log/logfile cat /dev/null > /var/log/amessages cat /dev/null > /var/log/php7.0-fpm.log cat /dev/null > /var/log/shairport.err cat /dev/null > /var/log/shairport.log cat /dev/null > /var/log/syslog cat /dev/null > /var/log/user.log cat /dev/null > /var/log/wtmp cat /dev/null > /var/log/Xorg.0.log然后通过使用chmod +x给脚本赋予执行权限,./clean_up.sh运行脚本,就实现了对各个log文本的内容清理。 使用crontab实现定时清理log:为了实现每隔几天系统自动运行shell脚本清理log文件,这里使用crontab新建计划任务,以实现每隔五天对log文件的自动清理,sudo -s获取管理员权限后,命令行里面输入crontab -e编辑计划任务,最后一行添加: 0 0 */5 * * /home/pi/Desktop/shell/clean_log.sh其中/home/pi/Desktop/shell是上面编辑的shell文件的绝对路径,这样就完成了对log文件自动清理的目标。^_O |
CopyRight 2018-2019 实验室设备网 版权所有 |