crontab history查看命令的执行时间

news2024/10/5 17:25:47

crontab

crontab学习网站(19. crontab 定时任务 — Linux Tools Quick Tutorial)

例子

今天实际工作里用到的(已经进行了防信息泄露处理

比如我现在希望每周三上午10:00之行一个php脚本

--gpt生成

00 10 * * 3 cd /home/user/project/risk && /usr/local/bin/php sendCheckVersionInfoRiskTagEmail.php > sendCheckVersionInfoRiskTagEmail.log 2>&1

  1. 00 10 * * 3: 这是 cron 作业的时间表达式,指定了作业运行的时间。这表示在每周的周三的上午 10:00 执行作业。

  2. cd /home/user/project/risk: 这一行是改变工作目录到指定的路径。在这里,它将工作目录切换到 /home/user/project/risk

  3. &&: 这是逻辑运算符 "AND",表示只有当前一个命令成功执行后才执行下一个命令。

  4. /usr/local/bin/php sendCheckVersionInfoRiskTagEmail.php: 这是要执行的命令,它会运行一个 PHP 脚本文件 sendCheckVersionInfoRiskTagEmail.php。在这里,它使用了 PHP 解释器 /usr/local/bin/php 来执行这个脚本。

  5. > sendCheckVersionInfoRiskTagEmail.log 2>&1: 这部分是输出重定向的语法,将命令的标准输出重定向到 sendCheckVersionInfoRiskTagEmail.log 文件中,并将标准错误输出(2)重定向到标准输出(1),这样可以将标准错误输出也写入到同一个日志文件中。

因此,这段代码的作用是在每周三的上午 10:00,切换工作目录到 /home/user/project/risk 目录,并执行一个 PHP 脚本 sendCheckVersionInfoRiskTagEmail.php,将执行过程的输出记录到日志文件中。

crontab详解
概述

通过crontab 命令,我们可以在固定的间隔时间执行指定的系统指令或 shell script脚本。时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合。这个命令非常适合周期性的日志分析或数据备份等工作。

主要就是定时地执行某个脚本,而不需要耗费大量人力重复性执行

crontab命令格式
  • crontab [-u user] file crontab [-u user] [ -e | -l | -r ]

命令参数

注:其实实际工作时,都是公用的crontab文件,基本上用crontab -e就够了,修改crontab文件内容

  • -u user:用来设定某个用户的crontab服务;

  • file:file是命令文件的名字,表示将file做为crontab的任务列表文件并载入crontab。如果在命令行中没有指定这个文件,crontab命令将接受标准输入(键盘)上键入的命令,并将它们载入crontab。

  • -e:编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当前用户的crontab文件。

  • -l:显示某个用户的crontab文件内容,如果不指定用户,则表示显示当前用户的crontab文件内容。

  • -r:从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户,则默认删除当前用户的crontab文件。

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

crontab实际调用脚本的命令格式

分 时 日 月 星期 要运行的命令

(比如最上方举的例子:00 10 * * 3: 这是 cron 作业的时间表达式,指定了作业运行的时间。这表示在每周的周三的上午 10:00 执行作业。)

  • 第1列分钟0~59

  • 第2列小时0~23(0表示子夜)

  • 第3列日1~31

  • 第4列月1~12

  • 第5列星期0~7(0和7表示星期天)

  • 第6列要运行的命令

实例

实例1:每1分钟执行一次myCommand

*****myCommand

实例2:每小时的第3和第15分钟执行

3,15****myCommand

实例3:在上午8点到11点的第3和第15分钟执行

3,158-11***myCommand

实例4:每隔两天的上午8点到11点的第3和第15分钟执行

3,158-11*/2**myCommand

实例5:每周一上午8点到11点的第3和第15分钟执行

3,158-11**1myCommand

实例6:每晚的21:30重启smb

3021***/etc/init.d/smbrestart

实例7:每月1、10、22日的4 : 45重启smb

4541,10,22**/etc/init.d/smbrestart

实例8:每周六、周日的1 : 10重启smb

101**6,0/etc/init.d/smbrestart

实例9:每天18 : 00至23 : 00之间每隔30分钟重启smb

0,3018-23***/etc/init.d/smbrestart

实例10:每星期六的晚上11 : 00 pm重启smb

023**6/etc/init.d/smbrestart

实例11:每一小时重启smb

**/1***/etc/init.d/smbrestart

实例12:晚上11点到早上7点之间,每隔一小时重启smb

023-7***/etc/init.d/smbrestart

注意事项
  • 新创建的cron job,不会马上执行,至少要过2分钟才执行。如果重启cron则马上执行。

  • 当crontab失效时,可以尝试/etc/init.d/crond restart解决问题。或者查看日志看某个job有没有执行/报错tail -f /var/log/cron。-

  • 千万别乱运行crontab -r。它从Crontab目录(/var/spool/cron)中删除用户的Crontab文件。删除了该用户的所有crontab都没了。

  • 注意时区,在终端中使用date命令查看时区,如果时区不一致的话,会导致脚本运行的时间和你预想的不一致

  • 在crontab中%是有特殊含义的,表示换行的意思。如果要用的话必须进行转义%,如经常用的date ‘+%Y%m%d’在crontab里是不会执行的,应该换成date ‘+%Y%m%d’。

history查看命令的执行时间

这个指的是,我们使用history本来只能看到命令序号和具体用过什么命令,而不知道这个命令发生的时间,在进行一些溯源时比较麻烦

之所以想去了解这个东西,是因为今天mt说因为我早上写需求的时候没pull最新的代码,加上我自己的然后就提交了,导致他的代码被覆盖

为了确定我早上是否进行了拉取最新代码的操作,我就去查了一下history怎么显示出命令发生的时间。

->

mac设置方式 :

echo'HISTTIMEFORMAT="%F %T "' >> ~/.bashrc

source ~/.bashrc

如果使用了zsh环境的终端(比如我):

使用history -i

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

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

相关文章

5、电源管理入门之 arm-scmi和mailbox核间通信

目录 1. 整体架构介绍 2 Linux中reset模块 2.1 Reset consumer 2.2 Reset provider 3. Linux SCMI reset通信 3.1 SCMI reset协议初始化 3.2 SCMI reset消息收发 4. SCP中reset 4.1 固件新增module 4.2 scmi_reset_domain初始化 4.3 scmi_reset_domain消息处理 4.3…

Windows / Linux dir 命令

Windows / Linux dir 命令 1. dir2. dir *.* > data.txt3. dir - list directory contentsReferences 1. dir 显示目录的文件和子目录的列表。 Microsoft Windows [版本 10.0.18363.900] (c) 2019 Microsoft Corporation。保留所有权利。C:\Users\cheng>dir驱动器 C 中…

《图解设计模式》笔记(一)适应设计模式

图灵社区 - 图解设计模式 - 随书下载 评论区 雨帆 2017-01-11 16:14:04 对于设计模式,我个人认为,其实代码和设计原则才是最好的老师。理解了 SOLID,如何 SOLID,自然而然地就用起来设计模式了。Github 上有一个 tdd-training&…

Android的ViewModel

前言 在Compose的学习中,我们在可组合函数中使用rememberSaveable​​​​​​​保存应用数据,但这可能意味着将逻辑保留在可组合函数中或附近。随着应用体量不断变大,您应将数据和逻辑从可组合函数中移出。 而在之前的应用架构学习中&…

Duilib显示gif颜色背景与原图不符GifUI

//xml <GifUI name"gif_option_new" float"true" pos"608,28,0,0" width"28" height"14" gif"new.gif"/>遇到两个问题。 1、图片背景只有第一帧显示&#xff0c;每一帧的背景色一样&#xff0c;字不同&…

FISCO BCOS(十七)利用脚本进行区块链系统监控

要利用脚本进行区块链系统监控&#xff0c;你可以使用各种编程语言编写脚本&#xff0c;如Python、Shell等 利用脚本进行区块链系统监控可以提高系统的稳定性、可靠性&#xff0c;并帮助及时发现和解决潜在问题&#xff0c;从而确保区块链网络的正常运行。本文可以利用脚本来解…

Redis-内存管理

Redis是基于内存存储的&#xff0c;非关系型&#xff0c;键值对数据库。因此&#xff0c;对Redis来说&#xff0c;内存空间的管理至关重要。那Redis是如何内存管理的呢&#xff1f; 一、最大内存限制 Redis 提供了 maxmemory 参数允许用户设置 Redis 可以使用的最大内存大小。…

【2024.02.22】定时执行专家 V7.0 发布 - TimingExecutor V7.0 Release - 龙年春节重大更新版本

目录 ▉ 新版本 V7.0 下载地址 ▉ V7.0 新功能 ▼2024-02-21 V7.0 - 更新日志▼ ▉ V7.0 新UI设计 ▉ 新版本 V7.0 下载地址 BoomWorks软件的最新版本-CSDN博客文章浏览阅读10w次&#xff0c;点赞9次&#xff0c;收藏41次。▉定时执行专家—毫秒精度、专业级的定时任务执行…

psp游戏存档收集SAVEDATA

不想从头开始 ppsspp存档目录 pc&#xff1a;ppsspp解压目录\memstick\PSP\SAVEDATA 安卓&#xff1a;根目录\PSP\SAVEDATA 噬神者2(日版) NPJH50832099c645531020001000 風燐-https://wwl.lanzouq.com/iI1R01owozxa 咲夜-https://wwl.lanzouq.com/id1tX1owp2uf につてのぬ…

Laravel01 课程介绍以及Laravel环境搭建

Laravel01 课程介绍 1. Laravel2. mac开发环境搭建(通过Homebrew)3. 创建一个项目 1. Laravel 公司中面临着PHP项目与Java项目并行&#xff0c;所以需要我写PHP的项目&#xff0c;公司用的框架就是Laravel&#xff0c;所以在B站上找了一门课学习。 Laravel中文文档地址 https…

(っ•̀ω•́)っ 如何在PPT中为文本框添加滚动条

本人在写技术分享的PPT时&#xff0c;遇到问题&#xff1a;有一大篇的代码&#xff0c;如何在一张PPT页面上显示&#xff1f;急需带有滚动条的文本框&#xff01;百度了不少&#xff0c;自己也来总结一篇&#xff0c;如下&#xff1a; 1、找到【文件】-【选项】 2、【自定义功…

数据库管理-第153期 Oracle Vector DB AI-05(20240221)

数据库管理153期 2024-02-21 数据库管理-第153期 Oracle Vector DB & AI-05&#xff08;20240221&#xff09;1 Oracle Vector的其他特性示例1&#xff1a;示例2 2 简单使用Oracle Vector环境创建包含Vector数据类型的表插入向量数据 总结 数据库管理-第153期 Oracle Vecto…

如何修改docker容器的端口映射

要修改 Docker 容器的端口映射&#xff0c;你需要停止并删除现有的容器&#xff0c;然后使用新的端口映射重新运行容器。以下是详细步骤&#xff1a; 停止容器&#xff1a; 使用 docker stop 命令停止正在运行的容器。替换 <container_id> 为你要停止的容器的 ID 或者容器…

物联网在智慧景区中的应用:提升游客体验与运营效率

目录 一、物联网技术概述 二、物联网在智慧景区中的应用 1、智能门票系统 2、智能导览系统 3、智能安全监控系统 4、智能环保系统 三、物联网在智慧景区中提升游客体验 1、提高游览便捷性 2、个性化服务体验 3、提升游客安全感 四、物联网在智慧景区中提升运营效率 …

Python爬虫实战入门:爬取360模拟翻译(仅实验)

文章目录 需求所需第三方库requests 实战教程打开网站抓包添加请求头等信息发送请求&#xff0c;解析数据修改翻译内容以及实现中英互译 完整代码 需求 目标网站&#xff1a;https://fanyi.so.com/# 要求&#xff1a;爬取360翻译数据包&#xff0c;实现翻译功能 所需第三方库 …

零基础学习8051单片机(十五)

本次先看书学习&#xff0c;并完成了课后习题&#xff0c;题目出自《单片机原理与接口技术》第五版—李清朝 答: &#xff08;1&#xff09;当 CPU正在处理某件事情的时候&#xff0c;外部发生的某一件事件请求 CPU 迅速去处理&#xff0c;于是&#xff0c;CPU暂时中止当前的工…

【前端】夯实基础 css/html/js 50个练手项目(持续更新)

文章目录 前言Day 1 expanding-cardsDay 2 progress-steps 前言 发现一个没有用前端框架的练手项目&#xff0c;很适合我这种纯后端开发夯实基础&#xff0c;内含50个mini project&#xff0c;学习一下&#xff0c;做做笔记。 项目地址&#xff1a;https://github.com/bradtr…

纯血鸿蒙来画龙!基于HarmonyOS ArkTS来操作SVG图片

大家好&#xff0c;龙年报喜&#xff0c;大地回春&#xff0c;作为程序员&#xff0c;以代码之名&#xff0c;表达对于龙年的祝福。本节将演示如何在基于HarmonyOS ArkTS的Image组件来实现画一条中国龙&#xff0c;祝大家“码”上“鸿”福到&#xff01; 本文涉及的所有源码&a…

Java Web演化史:从Servlet到SpringBoot的技术进程及未来趋势

引言 在快速演进的IT世界里&#xff0c;Java Web开发始终屹立不倒&#xff0c;它不仅承担着历史的厚重&#xff0c;也始终面向未来。 自诞生之日起&#xff0c;Java Web技术就在不断地进化&#xff0c;以适应不同时代的需求。 本文将回顾Java Web开发的重要里程碑&#xff0c;…

Stable diffusion UI 介绍-文生图

1.提示词&#xff1a; 你希望图中有什么东西 2.负面提示词&#xff1a;你不希望图中有什么东西 选用了什么模型 使用参数 1.采样器 sampling method 使用什么算法进行采样 2.采样迭代步数 sampling steps 生成图像迭代的步数&#xff0c;越多越好&#xff0c;但是生成速度越大越…