定时清理Linux中log文件的正确姿势 – 小孟博客 您所在的位置:网站首页 文件夹log 定时清理Linux中log文件的正确姿势 – 小孟博客

定时清理Linux中log文件的正确姿势 – 小孟博客

2024-07-15 21:14| 来源: 网络整理| 查看: 265

虽说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 实验室设备网 版权所有