Linux使用Shell脚本定时清理日志

一、删除指定时间文件命令:

/data/lydms-util-sms/logs/目录下所有30天前带.log的文件删除

find /data/lydms-util-sms/logs/ -mtime +30 -name "*.log" -exec rm -rf {} \;

说明:

find 对应目录 -mtime +天数 -name “文件名” -exec rm -rf {} ;

find:linux的查找命令,用户查找指定条件的文件;

/opt/soft/log/:想要进行清理的任意目录;

-mtime:标准语句写法;

+30:查找30天前的文件,这里用数字代表天数;

"*.log":希望查找的数据类型,"*.log"表示查找扩展名为jpg的所有文件.

-exec:固定写法;

rm -rf:强制删除文件,包括目录;

{} ; 固定写法,一对大括号+空格++;

二、计划任务:

1、创建shell文件

创建可执行shell文件

touch /data/shell/bin/del-30-days-ago-log.sh

在这里插入图片描述

添加文件可运行权限

chmod +x /data/shell/bin/del-30-days-ago-log.sh

在这里插入图片描述

2、shell文件中添加脚本

vim /data/shell/bin/del-30-days-ago-log.sh

打开创建的文件后,添加下面的数据。

#!/bin/sh

find /data/lydms-util-sms/logs/ -mtime +30 -name "*.log" -exec rm -rf {} \;

3、添加系统计划任务:

打开系统定时任务文件

crontab -e

将shell文件,添加到系统定时任务中

0 0 * * * /data/shell/bin/del-30-days-ago-log.sh

三、可能出现问题

1、超过运行时间,没有执行

没有将.sh文件设置为可执行文件

添加文件可运行权限

chmod +x /data/shell/bin/del-30-days-ago-log.sh

2、保存系统定时任务文件出现问题

图片三

(1)、空格问题

多一个空格,或者少一个空格。

(2)、corn表达式问题

采用5位corn表达式。

# 文件格式說明
#  ——分鐘(0 - 59)
# |  ——小時(0 - 23)
# | |  ——日(1 - 31)
# | | |  ——月(1 - 12)
# | | | |  ——星期(0 - 7,星期日=07)
# | | | | |
# * * * * * 被執行的命令

从第一个开始分别为分、时、日、月、星期

posted @ 2020-08-20 12:10  ah_lydms  阅读(716)  评论(0编辑  收藏  举报