Linux设置定时任务清理日志

791 阅读2分钟

前言

最近Linux服务器每天有大量日志产生,并且内容量也高达几百M,如果不及时清理,很容易就把服务器硬盘空间挤爆了,但是靠人力手工去清除太麻烦,所以考虑设置定时任务,让服务器定时清理日志

操作

写清除日志脚本

(1)确定好你要清除的日志文件路径

(2)新建sh脚本文件,命名为clearlog.sh,内容输入以下

#!/bin/bash
echo "---清理日志---"
find 你的日志文件路径 -mtime +7 -name '*.log' -exec rm -rf {} ;
echo "---清理完成---"
  • 你的日志文件路径 写上实际需要的
  • -mtime +7 :查找在指定时间曾被更改过的文件或目录,单位以24小时计算。
  • 因此这句命令总的意思就是清除指定路径7天前以log为后缀的文件

部署定时任务

实现定时任务,需要在Linux服务器安装crontab服务

安装crontab

(1)安装crond服务  

[root@localhost ~]# yum install crontabs

(2)启动     

[root@localhost ~]# service crond restart

(3)查看目前有哪些定时任务

[root@localhost ~]# crontab -l

指定要执行的定时脚本

(1)编辑定时任务

[root@localhost ~]# vim /etc/crontab

(2)在最后一行,指定定时任务执行频率,指定要执行的脚本

在可执行命令之前添加命令 . /etc/profile;/bin/sh,使得环境变量生效

注意:记得在要执行的shell 脚本开头使用以下代码 :#!/bin/sh

image.png

以下是例子:

 * * * * * 用户名 绝对路径文件  (每一分钟执行一次)
0 0 1,15 * * 用户名 绝对路径文件  (每月1号、15号执行一次)
0 */2 * * * 用户名 绝对路径文件 (每两小时执行一次)
0 0 * * 0 用户名 绝对路径文件  (每周执行一次)
0 0 1 * * 用户名 绝对路径文件  (每月执行一次)

(3)保存定时任务

[root@localhost ~]# crontab /etc/crontab

(4)部署定时任务

[root@localhost ~]# service crond reload
-------------------------------------------

(5)查看定时任务执行日志

[root@localhost ~]# cat /var/log/cron
-------------------------------------------