linux- 定时任务清理日志


风晓
风晓 2024-01-06 11:57:27 47725 赞同 0 反对 0
分类: 资源
linux是一个很能自动产生文件的系统,在实际部署运行中,发现日志文件会占用大量内存,且很多日志文件过了时效是可以删除的。本文介绍了CentOS自动删除n天前日志、邮件、备份等相关文件的过程。

一、查找并删除文件
1.1 查找文件
查找命令:find 对应目录 -mtime +天数 -name "文件名匹配逻辑"

#示例命令:查找/var/log/taos/ 目录下所有1天前带".*_00.log*"的文件
find /var/log/taos/ -mtime +1 -name "*_00.log*" 
#查找目录下大于50M的文件
 find /home/tdengine/taos3.0.4.2/server/log/ -size +50M

具体参数说明如下:
find:linux的查找命令,用户查找指定条件的文件;
/var/log/taos/ :想要进行清理的任意目录;
-mtime:标准语句写法;
+1:查找1天前的文件,这里用数字代表天数;
“.log":希望查找的数据类型,".jpg"表示查找扩展名为jpg的所有文件,”*"表示查找所有文件,这个可以灵活运用,举一反三。

 

1.2 查找并删除
  删除文件命令:find【选项】 -exec rm -rf {} \;

#示例命令:将/var/log/taos/ 目录下所有1天前带".*_00.log*"的文件删除
find /var/log/taos/ -mtime +1 -name "*_00.log*"  -exec rm -rf {} \;

具体参数说明如下:
find 【选项】:linux的查找命令
-exec:固定写法;
rm -rf:强制删除文件,包括目录;
{} ; :固定写法,一对大括号+空格++;

手动执行:(执行后再查询已经找不到文件了)


二、计划任务:
  若嫌每次手动执行语句太麻烦,可以将命令写到一个可执行shell脚本文件中,再设置crontab调度执行,那就可以让系统自动去清理相关文件。详细步骤如下:

2.1 创建shell脚本,并分配权限
# 新建一个可执行文件
touch 文件目录/文件名.sh
# 分配可运行权限
chmod +x 文件名.sh

示例:

touch /home/tdengine/shell/autodel-1daysago-adapaterlog.sh
chmod +x autodel-1daysago-adapaterlog.sh

2.2 编辑shell脚本
进入编辑命令: vi 文件名
#示例
vi autodel-1daysago-adapaterlog.sh

输入i进入编辑模式,编辑.sh文件如下:
#!/bin/sh
find /var/log/taos/ -mtime +1 -name "*_00.log*"  -exec rm -rf {} \;

编辑完后, 按esc键输入:wq保存退出。


2.3 计划任务
  crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。

2.3.1 新增调度任务
新增调度任务可用两种方法
(1) 在命令行输入: crontab -e 然后添加相应的任务,wq存盘退出。
(2)直接编辑/etc/crontab 文件,即vi /etc/crontab,添加相应的任务。

 

#进入计划任务
crontab -e
#将.sh执行脚本加入到系统计划任务,到点自动执行
输入示例:设置每天凌晨0点10分执行autodel-1daysago-adapaterlog.sh文件进行数据清理任务了
10 0 * * * /home/shell/autodel-1daysago-adapaterlog.sh

编辑完后, 按esc键输入:wq保存退出。


#查看计划列表
crontab -l 


完成以上三步,你就再也不每天惦记是否硬盘空间满了,该清理日志文件了,再也不会受到服务器硬盘空间不足的报警信息了

2.3.2 调度任务管理
设置周期性计划任务列表主要通过crontab命令进行,结合不同选项可以完成不同的计划管理操作:

-e:编辑计划任务列表
-u:指定所管理的计划任务属于哪个用户,默认是针对当前用户,一般只有root用户有权限使用此选项(用户编辑、删除其他用户的计划任务)
-l:列表显示计划任务
-r:删除计划任务列表
同时还可以和特殊字符一起使用:
星号(*):代表所有可能的值,例如月份字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。
*逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,3”,表示1和3
*中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
正斜线(/):可以用正斜线指定时间的间隔频率,同时正斜线可以和星号一起使用,例如/10,表示每十分钟执行一次。

如果您发现该资源为电子书等存在侵权的资源或对该资源描述不正确等,可点击“私信”按钮向作者进行反馈;如作者无回复可进行平台仲裁,我们会在第一时间进行处理!

评价 0 条
风晓L1
粉丝 1 资源 2038 + 关注 私信
最近热门资源
银河麒麟桌面操作系统备份用户数据  123
统信桌面专业版【全盘安装UOS系统】介绍  117
银河麒麟桌面操作系统安装佳能打印机驱动方法  109
银河麒麟桌面操作系统 V10-SP1用户密码修改  102
最近下载排行榜
银河麒麟桌面操作系统备份用户数据 0
统信桌面专业版【全盘安装UOS系统】介绍 0
银河麒麟桌面操作系统安装佳能打印机驱动方法 0
银河麒麟桌面操作系统 V10-SP1用户密码修改 0
作者收入月榜
1

prtyaa 收益393.62元

2

zlj141319 收益218元

3

1843880570 收益214.2元

4

IT-feng 收益208.98元

5

风晓 收益208.24元

6

777 收益172.71元

7

Fhawking 收益106.6元

8

信创来了 收益105.84元

9

克里斯蒂亚诺诺 收益91.08元

10

技术-小陈 收益79.5元

请使用微信扫码

加入交流群

请使用微信扫一扫!