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
4、实现秒级调度

因为Linux系统自带的corn最多只能实现分钟级调度,也就是最少间隔为1分钟,
基本思路就是每分钟调度一次shell任务insert_sql.sh。然后insert_sql.sh任务执行59次,每次休眠1S。
crontab中调度配置

crontab -e
* * * * * /home/mysql/insert_sql.sh

insert_sql.sh脚本内容

for i in {1..59}; 
    do /usr/local/mysql-8.0.28/bin/mysql -uroot -proot csdn < /home/mysql/insert.sql; 
    sleep 1; 
done 

三、可能出现问题

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)
# | | | | |
# * * * * * 被執行的命令

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ha_lydms

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值