1、前言

最近线上有个场景,需要清理线上日志。清理的原因是一个程序产生了大量的无用中间文件。

为了清理磁盘空间,直接删除即可。

2、定位磁盘

(1) 首先登录服务器

确认磁盘已满的问题:

df -lh 查看 磁盘的使用情况,这里可能存在多个挂载。根据需要清理磁盘即可,如图:

清理zabbix 服务器硬盘空间 服务器清理磁盘_清理zabbix 服务器硬盘空间


此处我找了一个服务器查看,并不是已满的服务器。

Filesystem 就是文件系统名称
Size 就是使用总挂载磁盘空间大小
Used 就是使用磁盘空间大小
Avail 为剩余磁盘空间大小
Use% 为使用百分比大小,当看到100%的时候就需要清理磁盘了
Mounted on 为挂载具体地址

(2) 定位日志

假如存在 挂载在/usr 下磁盘已满

find /usr -size +100M # 为查询 /usr 下大于100m的所有文件

(3) 删除文件

rm -rf xxxx 慎重使用

为了防止误操作,可以跳转到具体文件目录下,直接文件全名删除。

如果存在多个文件需要删除,例如带有时间,带有log,就可以直接

rm -rf *log*

删除,但是执行的时候一定要慎重,再次声明。

3、定时清理

  • 查看crontab 启动
    此处使用linux crontab 执行,首先查看crontab 是否启动,
cron服务是linux的内置服务,但它不会开机自动启动。可以用以下命令启动和停止服务:

/sbin/service crond start
/sbin/service crond stop
/sbin/service crond restart
/sbin/service crond reload


以上1-4行分别为启动、停止、重启服务和重新加载配置。

要把cron设为在开机的时候自动启动,在 /etc/rc.d/rc.local 脚本中加入 /sbin/service crond start 即可

查看当前用户的crontab,输入 crontab -l;

编辑crontab,输入 crontab -e;

删除crontab,输入 crontab -r

查看crontab运行状态
service crond status

crontab 启动状态来自网站

  • 脚本编写
    (1)在当前文件夹下,例如 /root, 编写shell 删除脚本 a.sh, 例如 写入 rm -rf Log,可以在正式之前先进行测试,
    例如输入数据到1.txt, echo “hello world” >> 1.txt
    (2)创建cron 定时任务,这里可以查看cron 表达式的写法,简单的话 就是
例如 0 1 * * * 代表 每天1点,* 代表任意,五位分别为: 分钟/小时/日期/月份/年份
  假如 每2分钟执行一次, */2 * * * *

我这里就是每天1点清理

创建 a.cron 文件,写入内容

0 1 * * *  /root/a.sh

这里式为了定时执行shell 脚本
(3)文件授权
这里是给a.cron 和 a.sh 赋予单独的读写权限。

chmod 755 a.*

(4)加入定时任务

crontab a.cron

(5) 查看 定时任务

crontab -l

(6)移除定时任务

contab -r 是移除所有任务,慎重使用,一下子所有任务都没了

contab -e  是vi对定时任务编辑,直接dd 就可以删除光标当前行任务,然后 esc切换命令,:wq 保存即可。

再次查看就没有这个定时任务了。

这里的操作还是比较简单的,这里是做一个记录。谢谢观看。