Linux 系统&自动清理日志实现脚本

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 1.删除文件命令:find 对应目录 命令选项

1.删除文件命令:find 对应目录 命令选项


实例命令 
find /export/Logs/ -type f -name "*log*" -mtime +3 -exec rm -rf {} \;
将/export/Logs/目录下所有30天前带".log"的文件删除。具体参数说明如下:
     find:linux的查找命令,用户查找指定条件的文件;
     /export/Logs/:想要进行清理的任意目录;
     -type f代表文件 d代表目录
     -mtime:标准语句写法;+30:查找30天前的文件,这里用数字代表天数;
     "*log*":希望查找的数据类型,"*.jpg"表示查找扩展名为jpg的所有文件,"*"表示查找所有文件,这个可以灵活运用,举一反三;
     -exec:固定写法;
     rm -rf:强制删除文件,包括目录;
     {} \; :固定写法,一对大括号+空格+\+;
     -size 查找符合大小的文件;

2.计划任务:


每次手动执行语句太麻烦,可以将语句写到一个可执行shell脚本文件中,再设置crontab调度执行自动清理相关文件。


创建shell脚本 vi auto-del-log.sh


#!/bin/bash
find /export/Logs/ -type f -name "*log*" -mtime +3 -exec rm -rf {} \;
find /export/Logs/ -type f -name "*log*" -size +100M -exec rm -rf {} \;
添加可执行权限  chmod +x auto-del-log.sh


3 设置定时任务


crontab -e
0 1 * * *  auto-del-log.sh   每天凌晨一点执行auto-del-log.sh脚本
文件/etc/crontab中每行任务的描述格式如下: 
     minute hour day month dayofweek command
     minute - 从0到59的整数 
     hour - 从0到23的整数 
     day - 从1到31的整数 (必须是指定月份的有效日期)
     month - 从1到12的整数 (或如Jan或Feb简写的月份)
     dayofweek - 从0到7的整数,0或7用来描述周日 (或用Sun或Mon简写来表示)
     command - 需要执行的命令(可用as ls /proc >> /tmp/proc或 执行自定义脚本的命令) 
      * 代表任意值 */5 代表没五个单位时间执行一次
相关实践学习
日志服务之数据清洗与入湖
本教程介绍如何使用日志服务接入NGINX模拟数据,通过数据加工对数据进行清洗并归档至OSS中进行存储。
目录
相关文章
|
1天前
|
Linux
Linux系统中,根目录
【7月更文挑战第14天】
12 4
|
2天前
|
Ubuntu Linux Shell
Ubuntu/linux系统环境变量配置详解
理解和掌握如何配置环境变量对于使用和管理Ubuntu/Linux系统非常重要。
10 2
|
3天前
|
Linux 数据处理 C语言
【Linux】基础IO----系统文件IO & 文件描述符fd & 重定向(下)
【Linux】基础IO----系统文件IO & 文件描述符fd & 重定向(下)
19 0
|
2天前
|
监控 Linux Shell
Linux系统之nice命令的基本使用
【7月更文挑战第10天】Linux系统之nice命令的基本使用
11 0
|
3天前
|
Linux C语言 C++
【Linux】基础IO----系统文件IO & 文件描述符fd & 重定向(上)
【Linux】基础IO----系统文件IO & 文件描述符fd & 重定向(上)
18 0
|
4天前
|
运维 监控 网络协议
Linux抓包命令tcpdump使用技巧大全
【7月更文挑战第10天】
22 4
Linux抓包命令tcpdump使用技巧大全
|
4天前
|
监控 数据挖掘 Linux
探索Linux中的`sort`命令:数据处理与分析的得力助手
`sort`命令是Linux下文本数据排序利器,用于按字典、数字顺序等对行排序。关键参数有:-n(数字排序),-r(逆序),-u(去重),-k(指定字段),-t(字段分隔符)和-o(输出到文件)。在处理大文件时注意内存使用,确保字符编码一致,灵活运用管道和重定向。通过熟练使用`sort`,能提升数据分析效率。
|
4天前
|
数据挖掘 Linux 数据处理
Linux命令sprof详解
**`sprof`是Linux下的共享库性能分析工具,补充`gprof`,专注分析`.profile`文件以识别性能瓶颈。通过调用次数、执行时间数据优化资源和代码。使用参数如`-F`、`-I`、`-d`进行定制化分析。示例:先设置`LD_PROFILE`环境变量,运行程序生成`.profile`,然后用`sprof`分析。注意需用`-g`编译程序,并在代表性的负载下分析。结合其他工具如`perf`、`valgrind`提升分析效果。**
|
4天前
|
存储 数据挖掘 Linux
Linux命令split详解:大文件处理的得力助手
`split`命令是Linux用于将大文件分割成小文件的工具,常用于日志处理、备份。它支持按行数(-l)、字节数(-b)分割,并能自定义输出文件名(-a, -d)。例如,`split -b 10M largefile.txt smallfile_`会按10MB切割`largefile.txt`,生成`smallfile_`开头的文件。注意确保磁盘空间充足,避免文件名冲突,并备份原始文件。结合其他命令使用,能提高文件管理效率。
|
1天前
|
关系型数据库 MySQL Linux
Linux命令systemctl详解
`systemctl`是Linux系统用于管理systemd服务的核心命令,它与systemd守护进程交互,实现启动、停止、重启服务及查看服务状态等功能。主要参数包括`start`、`stop`、`restart`、`status`、`enable`和`disable`等。例如,启动Apache服务使用`systemctl start httpd.service`,查看服务状态用`systemctl status <service>`。使用时需注意权限,服务名通常以`.service`结尾,但命令中可省略。最佳实践包括利用tab键补全、定期查看服务状态和合理配置服务自启。