shell定时清理日志文件、及crontab说明

news2024/11/24 12:10:24

        服务器日志文件一般是每天一个或多个文件,如果日志文件不清理,时间久了就会将磁盘空间占满,从而影响系统的正常运行。

1、分析磁盘空间占用情况

1.1、df 命令

        df 命令磁盘分区为单位查看文件系统中磁盘空间的使用情况。

语法:df [选项] [文件|目录]

选项:

  • -h 或 --human-readable   :将信息以人类可读的形式打印。
  • -i 或 --inode                        :查看分区inode使用情况。

示例:

 

1.2、du命令

        查看指定目录的磁盘空间使用情况。

        du 命令会递归地计算指定目录下所有文件和子目录的磁盘使用量,并将结果显示出来。

语法:du [选项] [文件|目录]

选项:

  • -a或--all   : 列出所有的文件和目录容量大小而不仅仅列出目录容量大小。
  • -s或--summarize    : 仅显示总计,只列出最后加总的值。
  • -h或--human-readable  : 以K,M,G为单位,提高信息的可读性。
  • -c或--total      :  除了列出文件和目录的容量大小外,最后在列出总容量。
  • --max-depth=N : 递归显示(仅仅是显示)时的递归深度小于等于N。--max-depth=0相当于-s参数。
  • -d 数字    :递归深度设置,效果与--max-depth=N相同。

示例:显示指定目录下每个子目录的磁盘使用量,以人类可读的格式呈现。

2、shell脚本文件

vim clearlog.sh   添加脚本文件

方式一:保留当天删除的日志文件记录

#!/bin/bash
 
# 日志文件目录
log_dir="/logs"
 
# 日志文件保留天数
max_days=7
         
# 查找所有超过期限的日志文件列表,并保存到clear_log_file.txt
find "${log_dir}" -name "*.log" -type f -mtime +"${max_days}" > ${log_dir}/clear_log_file.txt
# 遍历需要清除的日志文件列表
cat ${log_dir}/clear_log_file.txt|while read fileName
do
	# 删除日志文件
	rm -f $fileName
	echo "Deleted file: ${fileName}"
done

# 删除日志目录中的所有空目录
find "${log_dir}" -type d -empty -delete

echo "$(date): 删除了所有超过 $max_days天的旧日志文件" > $log_dir/clearmsg.log

方式二:直接删除超期日志文件

#!/bin/sh

# 日志文件目录
log_dir="/logs"
 
# 日志文件保留天数
max_days=7
         
echo "清理超期日志文件"
find "${log_dir}" -name "*.log" -type f -mtime +"${max_days}"  -exec rm -rf {} \;

脚本文件授权(可执行权限)

chmod +x clearlog.sh

3、crontab添加定时任务

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

注意:新创建的 cron 任务,不会马上执行,至少要过 2 分钟后才可以,当然你可以重启 cron 来马上执行。

Linux下的任务调度分为两类,系统任务调度和用户任务调度。

  • cron 系统任务调度。 可以使用它在每天的非高峰负荷时间段运行作业,或在一周或一月中的不同时段运行。cron是系统主要的调度进程,可以在无需人工干预的情况下运行作业。
  • crontab命令允许用户提交、编辑或删除相应的作业。每一个用户都可以有一个crontab文件来保存调度信息。系统管理员可以通过cron.deny 和 cron.allow 这两个文件来禁止或允许。

3.1、crontab 时间格式:

minute hour day month week command

minute: 表示分钟,可以是从0到59之间的任何整数。

hour:表示小时,可以是从0到23之间的任何整数。

day:表示日期,可以是从1到31之间的任何整数。

month:表示月份,可以是从1到12之间的任何整数。

week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。

command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。

还可以使用以下特殊字符:

星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。

逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”

中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”

正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。

3.2、crontab服务

3.2.1、检查、安装crontab

        

        检查是否安装了crontab,如果提示未安装请自行安装,crontab安装包在系统光盘里面的pacekage文件夹,也可以进入此网站找  http://rpmfind.net/  相对应的crontab安装包。或yum命令安装。

# vixie-cron软件包是cron的主程序;
yum install vixie-cron

# crontabs软件包是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序。
yum install crontabs

  crond可以用以下的方法启动、关闭服务:

/sbin/service crond start #启动服务
/sbin/service crond stop #关闭服务
/sbin/service crond restart #重启服务
/sbin/service crond reload #重新载入配置

 crond开机自启动查询、设置: 

# 查询开机自启动服务,enabled 是开机启动,disabled 是开机不启动.
systemctl list-unit-files | grep crond

# 设置开机自启动
systemctl enable crond

# 设置开机不启动
systemctl disable crond

3.2.2、crontab命令

        作用:添加,查询,删除系统计划任务的指令。

语法:crontab [选项]

选项:

    -u <用户名称>   :设定指定<用户名称>的定时任务,这个前提是你必须要有其权限(比如说是 root)才能够指定他人的时程表。如果不使用 -u user 的话,就是表示设定自己的定时任务。

    -e   :编辑某个用户的crontab定时任务文件内容。如果不指定用户,则表示编辑当前用户的crontab文件。
    -l    :查询crontab任务。显示某个用户的crontab文件内容,如果不指定用户,则表示显示当前用户的crontab文件内容。
    -r   :从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户,则默认删除当前用户的crontab文件。

   -ir   :在删除用户的crontab文件时给确认提示。

 3.2.3、crontab 全局配置文件

         crontab在/etc目录下面存在cron.hourly,cron.daily,cron.weekly,cron.monthly,cron.d五个目录和crontab,cron.deny二个文件。

# 目录

  • cron.daily是每天执行一次的job。
  • cron.weekly是每个星期执行一次的job。
  • cron.monthly是每月执行一次的job。
  • cron.hourly是每个小时执行一次的job。
  • cron.d是系统自动定期需要做的任务。

# 文件

  • crontab是设定定时任务执行文件。
  • cron.deny文件就是用于控制不让哪些用户使用Crontab的功能。

 3.2.4、crontab 用户配置文件

        每个用户都有自己的cron配置文件,通过crontab -e 就可以编辑,一般情况下我们编辑好用户的cron配置文件保存退出后,系统会自动就存放于 /var/spool/cron目录中,文件以用户名命名。linux的cron服务是每隔一分钟去读取一次/var/spool/cron,/etc/crontab,/etc/cron.d下面所有的内容。

3.2.5、cron定时任务的执行日志

 cron定时任务执行日志文件在: /var/log/cron

3.3、cron添加定时任务操作步骤

  1. 编辑了.sh脚本,并保存,记录.sh文件所在路径【一定确保.sh脚本可用,可以尝试在编辑完成.sh文件后,直接./clearlog.sh  执行脚本文件,查看是否可以正常执行】。
  2. 查看并设置cron为自启动。
  3. 查看并启动cron服务,使状态为running。
  4. 编辑并查看cron服务,注意路径和定时格式,确保cron服务编辑成功。
  5. 最后在编辑完成cron服务后,重新加载或重启cron服务,确保cron服务状态是running的。
  6. 最后可以通过查看cron执行日志,确保cron是否执行。
  7. 如果cron任务不执行,确保linux服务器系统 时间 和时区 是否正常。

3.4、查看、修改时区

# 查看当前系统的时区
timedatectl

# 列出可用时区
# timedatectl list-timezones 但是会列出一大堆

# 在后面加个grep查询,直接列出相关的信息
timedatectl list-timezones|grep Shanghai   

# 设置时区
timedatectl set-timezone Asia/Shanghai

# 查询设置结果
date

 3.5、添加定时任务示例:

# 每天凌晨4点执行清理日志命令
* 4 * * *  sh /home/admin/clearlog.sh

# 若执行多个命令,用;分隔开 
*/1 * * * * source /etc/profile; sh /home/pentaho/pentaho-server/auto_monitor_server.sh


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1071470.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python基础教程:类class

嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取 class 定义一个类 class 定义一个类, 后面的类别首字母推荐以 大写 的形式定义&#xff0c;比如Calculator. 冒号不能缺 class可以先定义自己的属性&#xff0c…

Java 面向对象的三大特性

面向对象编程有三大特征: 封装、继承和多态。 1.封装 1&#xff09;封装介绍 封装(encapsulation)就是把抽象出的数据[属性]和对数据的操作[方法]封装在一起数据被保护在内部.程序的其它部分只有通过被授权的操作[方法],才能对数据进行操作。 2&#xff09;封装的理解和好处 隐…

Windows安装Node.js

1、Node.js介绍 ①、Node.js简介 Node.js是一个开源的、跨平台的JavaScript运行环境&#xff0c;它允许开发者使用JavaScript语言来构建高性能的网络应用程序和服务器端应用。Node.js的核心特点包括&#xff1a; 1. 事件驱动: Node.js采用了事件驱动的编程模型&#xff0c;通…

美股游戏股分析:微软收购游戏公司动视暴雪将迎来一个重要里程碑

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 总结&#xff1a; &#xff08;1&#xff09;微软(MSFT)收购动视暴雪(ATVI)的交易在做出重大让步后目前已经获得了欧盟和美国的监管批准。 &#xff08;2&#xff09;英国英国竞争和市场管理局(CMA)最初对微软收购动视暴雪…

SpringCloud Alibaba - 分布式事务理论(CAP 定理 和 BASE 理论)

目录 一、分布式事务理论 1.1、分布式事务问题 1.2、什么是分布式事务 1.3、解决分布式事务思路 1.3.1、CAP 定理 a&#xff09;Consistency&#xff08;一致性&#xff09; b&#xff09;Availability&#xff08;可用性&#xff09; c&#xff09;Partition tolerance…

反向生成:根据mybatis生成的Class实体类对象反向生成建表语句

微信公众号&#xff1a;大数据高性能计算 针对数据库不小心被删除的情况&#xff0c;以及需要逆向查看某个开源项目数据库表的情况时&#xff0c;往往需要逆向工程。 在这里我们假设 id 字段为主键。在生成 SQL 建表语句时&#xff0c;我们添加了 PRIMARY KEY (id) 来定义 i…

温控仪工作原理

温控仪的工作原理&#xff0c;是通过温度探头或热电偶反馈的电信号&#xff0c;温控仪将得到的电信号转化成温度值&#xff0c;根据设定的温度值&#xff0c;控制加热器的接通和断开来达到控制温度范围的&#xff1a; 1、温度探头或热电偶受温度变化时&#xff0c;会产生微弱的…

CDN技术与企业网站建设:解决疑问与明智选择

介绍CDN技术与疑问 在数字时代&#xff0c;网站是企业线上存在的门户&#xff0c;因此网站的性能和安全至关重要。为了解决一些与网站建设和性能相关的疑问&#xff0c;让我们首先来了解CDN技术。 什么是CDN技术&#xff1f; CDN&#xff0c;即内容分发网络&#xff08;Conte…

Langchain-Chatchat项目:1.2-Baichuan2项目整体介绍

由百川智能推出的新一代开源大语言模型&#xff0c;采用2.6万亿Tokens的高质量语料训练&#xff0c;在多个权威的中文、英文和多语言的通用、领域benchmark上取得同尺寸最佳的效果&#xff0c;发布包含有7B、13B的Base和经过PPO训练的Chat版本&#xff0c;并提供了Chat版本的4b…

【重拾C语言】六、批量数据组织(四)线性表—栈和队列

目录 前言 六、批量数据组织——数组 6.1~3 数组基础知识 6.4 线性表——分类与检索 6.5~7 数组初值&#xff1b;字符串、字符数组、字符串数组&#xff1b;类型定义 typedef 6.8 线性表—栈和队列 6.8.1 栈&#xff08;Stack&#xff09; 全局变量 isEmpty() isFull…

TCP原理特性详解

文章目录 可靠传输机制1.确认应答2.超时重传2.连接管理1.三次握手2.四次挥手 传输效率1.滑动窗口2.流量控制3.拥塞控制4.延时应答5.捎带应答 面向字节流粘包问题 TCP异常情况 可靠传输机制 可靠性&#xff1a;即发送方知道数据是发送成功了&#xff0c;还是失败了。 1.确认应答…

Github-使用2FA验证:使用python实现TOTP验证,python实现github的2FA验证

github新增了2FA验证了&#xff0c; 1、扫描二维码&#xff0c;获取对应字符串 或点击setup key ,获取字符串 2、使用python来生成校验码 安装&#xff1a; pip install pytop import pyotp key XKDRR4WH3LY2WXPH print(pyotp.TOTP(key).now()) 3、将生成的6个验证码&…

第一章 概述 | 计算机网络(谢希仁 第八版)

文章目录 第一章 概述重要内容计算机网络的一些相关知识互联网概述因特网的标准化工作互联网的组成计算机网络的类别计算机网络的性能指标计算机网络的体系结构——-分层次的体系结构 第一章 概述 重要内容 互联网边缘部分和核心部分的作用&#xff0c;以及分组交换的概念 计…

学习记忆——宫殿篇——记忆宫殿——记忆桩——身体——记忆星座

我们在与人攀谈的时候&#xff0c;可以从以下几个维度入手&#xff0c;如&#xff1a;年龄、星座、爱好、工作等。 两点记忆的技巧以及一点知识延伸 两点记忆技巧&#xff1a; 1、第一次见面时要创建回忆线索 2、脑中回忆交流画面&#xff0c;加深线索 一点知识延伸&#xff1…

NoSQL之Redis 主从复制配置详解及哨兵模式

目录 1 Redis 主从复制 1.1 主从复制的作用 1.2 主从复制流程 2 搭建Redis 主从复制 2.1 安装 Redis 2.2 修改 Redis 配置文件&#xff08;Master节点操作&#xff09; 2.3 修改 Redis 配置文件&#xff08;Slave节点操作&#xff09; 2.4 验证主从效果 3 Redis 哨兵模…

自动拟人对话机器人在客户服务方面起了什么作用?

在当今数字时代&#xff0c;企业不断寻求创新的方法来提升客户服务体验。随着科技的不断进步和消费者期望的提升&#xff0c;传统的客户服务方式逐渐无法满足现代消费者的需求。因此&#xff0c;许多企业正在积极探索利用新兴技术来改进客户服务&#xff0c;自动拟人对话机器人…

javaScript关于闭包的理解

首先在了解闭包之前&#xff0c;我们要了解一下环境和作用域 1.环境和作用域 日常生活中我们生活的环境由周边建设如公园&#xff0c;小区&#xff0c;超市构成的。这就构成了环境 在计算机当中环境就是一块内存的数据。 环境是有作用范围的&#xff0c;eg:武汉周边的建设一…

YOLOv8 Tensorrt部署详细介绍(小白从0到1,不会你砍我)

下载YOLOv8项目和Tensorrt部署项目 git clone https://github.com/xiaocao-tian/yolov8_tensorrt.git git clone https://github.com/ultralytics/ultralytics.git 下载yolov8s模型 在YOLOv8项目中新建weights文件夹&#xff0c;将yolov8s.pt放入 运行tensorrt项目中gen_wts…

RabbitMQ 介绍与 SpringBootAMQP使用

一、MQ概述 异步通信的优点&#xff1a; 耦合度低吞吐量提升故障隔离流量削峰 异步通信的缺点&#xff1a; 依赖于Broker的可靠性、安全性、吞吐能力架构复杂&#xff0c;业务么有明显的流程线&#xff0c;不方便追踪管理 什么是的MQ MQ&#xff08;Message Queue&#xf…

选择适合建筑公司的企业网盘平台

随着城市化进程的加速&#xff0c;越来越多的人开始关注乡村生活品质。Z公司以其标准化产品和优质资源整合&#xff0c;为回乡建房人群提供了一种全新的、高品质的整体解决方案。 Z公司深入调研了10W的回乡建房人群需求&#xff0c;组建了设计、工艺、供应链方面的专家团队&…