linux- 定时任务清理日志

这篇具有很好参考价值的文章主要介绍了linux- 定时任务清理日志。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


  linux是一个很能自动产生文件的系统,在实际部署运行中,发现日志文件会占用大量内存,且很多日志文件过了时效是可以删除的。本文介绍了CentOS自动删除n天前日志、邮件、备份等相关文件的过程。

linux定时删除日志,linux,linux,运维

一、查找并删除文件

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的所有文件,”*"表示查找所有文件,这个可以灵活运用,举一反三。

linux定时删除日志,linux,linux,运维

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:强制删除文件,包括目录;
{} ; :固定写法,一对大括号+空格++;

手动执行:(执行后再查询已经找不到文件了)
linux定时删除日志,linux,linux,运维

二、计划任务:

  若嫌每次手动执行语句太麻烦,可以将命令写到一个可执行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脚本

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

编辑完后, 按esc键输入:wq保存退出。
linux定时删除日志,linux,linux,运维

2.3 计划任务

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

2.3.1 新增调度任务

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

linux定时删除日志,linux,linux,运维

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

编辑完后, 按esc键输入:wq保存退出。
linux定时删除日志,linux,linux,运维

#查看计划列表
crontab -l 

linux定时删除日志,linux,linux,运维

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

2.3.2 调度任务管理

设置周期性计划任务列表主要通过crontab命令进行,结合不同选项可以完成不同的计划管理操作:文章来源地址https://www.toymoban.com/news/detail-620313.html

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

到了这里,关于linux- 定时任务清理日志的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux 使用 crontab 定时拆分日志、清理过期文件

    @ 目录 前言 简介 一、准备工作 1.1 创建写入脚本 1.2 设置执行权限 1.3 添加定时任务 1.4 配置生效 二、Tomcat日志 按每天分割 2.1 创建一个 sh文件 2.2 设置执行权限 2.3 设置crontab指令,指定每日定时任务 2.4 配置生效 总结 请各大网友尊重本人原创知识分享,谨记本人博客:南国以

    2024年04月08日
    浏览(40)
  • 【Linux 服务器运维】定时任务 crontab 详解 | 文末送书

    本文思维导图概述的主要内容: 1.1 什么是 crontab Crontab 是一个在 Unix 和 Linux 操作系统上 用于定时执行任务 的工具。它允许用户创建和管理计划任务,以便在特定的时间间隔或时间点自动运行命令或脚本。Crontab 是 cron table 的缩写, cron 指的是 Unix 系统中的一个后台进程,它

    2024年02月08日
    浏览(92)
  • linux定时删除服务器日志

    不说废话。直接进入操作流程 linux 定时任务是用的crontab 查看 crontab是否启动 dead 死的 启动crontab 再次查看状态 running  运转的 查看 crontab 查看 crontab任务 编辑 crontab任务 创建了一个任务  0 1 * * *  sh /workspace/java/del_log/dele_log.sh 每天1点自动执行 其中: 第一个号表示时间中的

    2024年02月09日
    浏览(47)
  • Linux 系统中查看和停止删除定时任务

    在Linux或类Unix系统中,通常使用crontab命令在指定的时间执行一个shell脚本或者一系列Linux命令,也就是通常所说的定时任务。 crond crond 是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此

    2024年02月09日
    浏览(35)
  • linux定时删除三天前的binlog日志(docker)

      写先一个删除的shell脚本 auto-del.sh 真正删除之前,先用下面的语句查下是不是要删除的文件,这里是删除三天前的日志 将auto-del.sh执行脚本加入到系统计划任务  这里是设置为每天28点59分执行auto-del.sh进行数据处理 

    2024年02月16日
    浏览(43)
  • Linux中定时删除指定日期和天数的log日志文件

    不管是测试环境还是正式环境,由于我们运行的服务往往会产生大量的日志文件,如果忘记清理,容易造成磁盘空间不足,因此最好是利用 linux 自带的定时任务功能去定时清理日志. 1.创建 shell脚本,赋权限 2.编写脚本( 可以对多个路径下的文件进行删除,只需将find一行复制改成相应

    2024年02月17日
    浏览(41)
  • 【SQL Server】自动任务备份,定时清理历史文件

    数据库备份是指将数据库中的数据和结构进行复制或存档,以防止数据丢失、故障或灾难事件导致数据库不可用。通过备份,可以在需要时恢复数据并继续业务运行,确保数据的完整性和可用性。 打开SSMS客户端工具,输入账户名和密码,显示已连接即可,此时SQL Sercer代理服

    2024年01月17日
    浏览(40)
  • mysql binlog 日志自动清理及手动删除

    1、查看日志文件的文件名以及在那里 show binary logs; 2、手动清除binlog文件 以文件为参考物 purge master logs to \\\'mysql-bin.009\\\';    ‘mysql-bin.009’之前的全部被清除,不包含mysql-bin.009 以时间为参考物 PURGE MASTER LOGS BEFORE DATE_SUB(CURRENT_DATE, INTERVAL 10 DAY); //删除10天前的MySQL binlog日志 删除所

    2024年02月07日
    浏览(57)
  • linux定时清理文件的脚本

     1、新建清理文件脚本 vim  autodelfile.sh 2、脚本添加执行权限  chmod  +x  autodelfile.sh  3、设置定时任务执行脚本 crontab -e    //编辑定时任务 50 23 * * *  /home/trans/app/autodelfile.sh /dev/null 21 crontab -l    //查看定时任务

    2024年02月10日
    浏览(41)
  • Linux 定时清理buff/cache

    总所周知,linux系统下的内存一直都不够用,特别是对于一些WEB网站而言,特别是针对一些小型服务器,内存一下子就占满了 通过我们用free -h 查询内存的占用大小时,总会发现buff/cache暂用过大 解决的方法一般可以直接清理 或者定时清理 选择其中一个清理就行了,例如    

    2024年02月09日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包