linux中写定时任务

news/2024/12/27 20:00:11/

场景:我们生产环境中有大量的日志记录,但是我们的磁盘没有太大,需要定时清理磁盘


文章目录

  • crond 定时任务详解
    • 安装定时任务
    • crontab服务启动与关闭
    • crontab操作
    • crontab 命令
    • test.sh
    • 查看日志
    • 丢弃linux中的执行日志
    • Linux进入nano模式
      • 方式一
      • 方式二
    • 解决nohup 的日志问题


crond 定时任务详解

安装定时任务

yum install cronie

crontab服务启动与关闭

service crond start     //启动服务
service crond stop      //关闭服务
service crond restart   //重启服务
service crond reload    //重新载入配置
service crond status    //查看crontab服务状态

crontab操作

crontab -l //查看当前用户的crontab;
crontab -e //编辑crontab;
crontab -r //删除crontab.

crontab 命令

格式:

*       *        *        *        *           command
minutehourdaymouthweekcommand
星期命令

minute: 表示分钟,可以是从0到59之间的任何整数。
hour:表示小时,可以是从0到23之间的任何整数。
day:表示日期,可以是从1到31之间的任何整数。
month:表示月份,可以是从1到12之间的任何整数。
week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。

特殊字符:
星号():代表每的意思,例如month字段如果是星号,则表示每月都执行该命令操作。
逗号(,):表示分隔时段的意思,例如,“1,3,5,7,9”。
中杠(-):表示一个时间范围,例如“2-6”表示“2,3,4,5,6”。
正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如
/10,如果用在minute字段,表示每十分钟执行一次。
举例

# 每分钟执行一次test.sh  并将日志打印到/usr/bks/common/test.log中
*/1 * * * * /usr/bks/common/test.sh  >>/usr/bks/common/test.log 2>&1

test.sh

#!/bin/sh
# 进入指定目录
cd /usr/bks/common
#输出内容
echo "just test"
#输出当前时间,将当前事件追加到test1.txt这个文件中
echo `date` >> test1.txt

查看日志

错误:
在这里插入图片描述
问题原因:没有权限

sudo chmod +777 /usr/local/某路径/xxxx

错误2
在这里插入图片描述
错误原因:脚本格式问题,在windows系统中编写的脚本,修改格式

#1、使用vi工具vi test.sh
#2、利用如下命令查看文件格式 
:set ff 或 :set fileformat 
#3、可以看到如下信息 
#fileformat=dos 或 fileformat=unix 
#4、利用如下命令修改文件格式 
:set ff=unix 或 :set fileformat=unix 
#5、存盘退出
:wq 

正确示例
在这里插入图片描述

丢弃linux中的执行日志

#&>/dev/null 2>&1  在linux中是无底洞
*/1 * * * * /usr/bks/common/delLog.sh  &>/dev/null 2>&1

Linux进入nano模式

出现如下情况说明进入了nano模式

G Get Help      ^O Write Out     ^W Where Is      ^K Cut Text      ^J Justify       ^C Cur Pos       M-U Undo         M-A Mark Text    M-] To Bracket   M-Q Previous
^X Exit          ^R Read File     ^\ Replace       ^U Uncut Text    ^T To Spell      ^_ Go To Line    M-E Redo         M-6 Copy Text    ^Q Where Was     M-W Next

方式一

写入内容:

Ctrl + O 		
Enter			(回车确定写入)

退出编辑:

Ctrl + X		(没有更改文件内容时,按下即退出编辑器)
Enter			(确定退出)

方式二

第二种 将 crontab nano 改为 vim 编辑器

直接定义变量指定 crontab 为 vim 编辑器

export EDITOR="/usr/bin/vim" ; crontab -e

解决nohup 的日志问题

定时清理nohup中日志,不能删除nohup.out文件,只能清理里面的日志
日志脚本

# 清理/home/java/applet/nohup.out路径下的nohup.out日志
echo "" > /home/java/applet/nohup.out;

http://www.ppmy.cn/news/33729.html

相关文章

【8】核心易中期刊推荐——人工智能与机器人

🚀🚀🚀NEW!!!核心易中期刊推荐栏目来啦 ~ 📚🍀 核心期刊在国内的应用范围非常广,核心期刊发表论文是国内很多作者晋升的硬性要求,并且在国内属于顶尖论文发表,具有很高的学术价值。在中文核心目录体系中,权威代表有CSSCI、CSCD和北大核心。其中,中文期刊的数…

【代码随想录-刷题学习JavaScript】day2-part02数组

继续数组的部分 977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II 今天会有个小结 一、LeetCode977.有序数组的平方 文章讲解 视频讲解 二、LeetCode 209.长度最小的子数组 题目建议: 本题关键在于理解滑动窗口,这个滑动…

太强了,英伟达面对ChatGPT还有这一招...

大家好,我是 Jack。 今年可谓是 AI 元年,ChatGPT、AIGC、VITS 都火了一波。 我也先后发布了这几期视频: 这是一个大模型的时代,AI 能在文本、图像、音频等领域大放异彩,得益于大模型。而想要预训练大模型&#xff0c…

int *p = a、p = a、*p = a

int *p &a; //初始化一个int *类型指针,同时将变量a的地址存入p指针这里是一个特殊用法,仅在初始化变量的时候可以使用,应分为两个部分去进行理解。int *p; //初始化一个int * 类型指针pp &a; //将变量a的地址存入p指针&#xff0c…

基于深度学习的动物识别系统(YOLOv5清新界面版,Python代码)

摘要:动物识别系统用于识别和统计常见动物数量,通过深度学习技术检测日常几种动物图像识别,支持图片、视频和摄像头画面等形式。在介绍算法原理的同时,给出Python的实现代码、训练数据集以及PyQt的UI界面。动物识别系统主要用于常…

哈夫曼编码、哈夫曼树

已知一个文件中出现的各字符及其对应的率如下表所示。若采用定长编码,则该文件中字符的码长应为( )。若采用Huffman编码,则字符序列face的编码应为( ) 字符abcdef频率4513121695码长决定了可以显示几位字符,题中一共有6位&#x…

【Linux】环境变量(基本概念 常见环境变量 测试PATH 环境变量相关命令)

文章目录环境变量基本概念常见环境变量测试PATH别的环境变量通过系统调用获取或设置环境变量环境变量相关命令export: 设置一个新的环境变量set: 显示本地定义的shell变量和环境变量unset: 清除环境变量通过代码如何获取环境变量环境变量 基本概念 环境变量(environment vari…

ThreadPool线程池源码解析

ThreadPool线程池源码解析 文章目录前言一、基本使用二、执行流程三、源码分析ThreadPoolExecutor 中重要属性ThreadPoolExecutor 内部类Workerexecute()方法addWorker(command, true)方法runWorker(worker )方法getTask()方法shutdown和shutdownNow四、…