crontab history查看命令的执行时间

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.mzph.cn/news/696494.shtml

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

相关文章

阿里云SSL免费证书到期自动申请部署程序

阿里云的免费证书只有3个月的有效期,不注意就过期了,还要手动申请然后部署,很是麻烦,于是写了这个小工具。上班期间抽空写的,没有仔细测试,可能存在一些问题,大家可以自己clone代码改改&#xf…

【大模型 数据增强】LLMAAA:使用 LLMs 作为数据标注器

【大模型 数据增强】LLMAAA:使用 LLMs 作为数据标注器 提出背景算法步骤1. LLM作为活跃标注者(LLMAAA)2. k-NN示例检索与标签表述化3. 活跃学习策略4. 自动重权技术 LLMAAA 框架1. LLM Annotator2. Active Acquisition3. Robust Training 总结…

SkyWalking之APM无侵入可观测原理分析

一、 简介(为什么需要用到可观测能力) 随着微服务的开发模式的兴起,早期的单体架构系统已拆分为很多的子系统,各个子系统封装为微服务,各服务间通过HTTP协议RESET API或者RPC协议进行调用。 在单体服务或者微服务较少的…

8:00面试,8:05就出来了 ,问的实在是....

从外包出来,没想到竟然死在了另一家厂子 自从加入这家公司,每天都在加班,钱倒是给的不少,所以我也就忍了。没想到12月一纸通知,所有人都不许加班,薪资直降30%,顿时有吃不起饭的赶脚。 好在有个…

ESP8266智能家居(2)——8266发布数据到mqtt服务器

1.公共服务器 学习物联网就离不开服务器,如果你资金充足的话,可以自己购买或者租用一个服务器。本次我选择,使用免费的公共MQTT服务器。它的端口及Broker信息如下: 网址为: 免费的公共 MQTT 服务器 | EMQ (emqx.com)h…

LLMChain使用 | RouterChain的使用 - 用本地大模型搭建多Agents

单个本地大模型搭建参考博客 单个Chain:面对一个需求,我们需要创建一个llmchain,设置一个prompt模板,这个chain能够接收一个用户input,并输出一个结果;多个Chain:考虑到同时面对多个需求&#x…

第三百六十回

文章目录 1. 概念介绍2. 实现方法2.1 环绕效果2.2 立体效果 3. 示例代码4. 内容总结 我们在上一章回中介绍了"自定义SlideImageSwitch组件"相关的内容,本章回中将介绍两种阴影效果.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 我们在本…

设计模式-创建型模式-原型模式

原型模式(Prototype Pattern):使用原型实例指定创建对象的种类,并且通过克隆这些原型创建新的对象。原型模式是一种对象创建型模式。原型模式其实就是从一个对象再创建另外一个可定制的对象,而且不需知道任何创建的细节…

微信小程序开发学习笔记——2.8媒体组件image的src三种引入方式

>>跟着b站up主“咸虾米_”学习微信小程序开发中,把学习记录存到这方便后续查找。 课程连接: https://www.bilibili.com/video/BV19G4y1K74d?p11 image:https://developers.weixin.qq.com/miniprogram/dev/component/image.html 一…

Redis-内存管理

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

js设计模式:依赖注入模式

作用: 在对象外部完成两个对象的注入绑定等操作 这样可以将代码解耦,方便维护和扩展 vue中使用use注册其他插件就是在外部创建依赖关系的 示例: class App{constructor(appName,appFun){this.appName appNamethis.appFun appFun}}class Phone{constructor(app) {this.nam…

Elastic Search:构建语义搜索体验

当你逐步熟悉 Elastic 时,你将使用 Elasticsearch Relevance Engine™ (ESRE),该引擎旨在为 AI 搜索应用程序提供支持。 借助 ESRE,你可以利用一套开发人员工具,包括 Elastic 的文本搜索、向量数据库和我们用于语义搜索的专有转换…

ngnix网站服务详解

一 Nginx的简介 1 Nginx: ①Nginx 是开源、高性能、高可靠的 Web 和反向代理服务器,而且支持热部署,几乎可以做到 7 * 24 小时不间断运行,即使运行几个月也不需要重新启动,还能在不间断服务的情况下对软件版本进行热…

2月22日作业,按键中断LED灯控制

1.使用GPIO子系统&#xff0c;编写LED驱动&#xff0c;应用程序测试 mychrdev.c #include <linux/init.h> #include <linux/module.h> #include <linux/fs.h> #include <linux/uaccess.h> #include <linux/io.h> #include <linux/of.h> …

微软Azure OpenAI的 GPT 接口使用小结

直接使用OpenAI的 GPT服务&#xff0c;在国内环境使用上会一些相关问题&#xff0c;微软提供了OpenAI的服务&#xff0c;基本上可以满足的相关的需要。下面提供一些简单的使用操作&#xff0c;来让你快速使用到 GPT 的服务。 前提&#xff1a;注册Azure的账户&#xff0c;并绑…

OpenCV中的normalize函数以及NORM_MINMAX、NORM_INF、NORM_L1、NORM_L2具体应用介绍

在OpenCV中&#xff0c;normalize函数用于将图像或矩阵的值规范化到一个特定的范围内。这在图像处理中非常有用&#xff0c;比如在调整图像的对比度、准备数据进行机器学习处理时。规范化可以提高不同图像之间的可比性&#xff0c;或是为了满足特定算法对数据范围的要求。 nor…

36、IO进程线程/进程和线程之间的通信练习

一、使用有名管道完成两个进程的相互通信(提示&#xff1a;可以使用多进程或多线程完成)。 代码1&#xff1a;创建两个有名管道文件 #include<myhead.h>int main(int argc, const char *argv[]) {if(mkfifo("./mingtohua",0664)-1)//创建小明向小华发信息的管…

Stable Diffusion 绘画入门教程(webui)-ControlNet(深度Depth)

上篇文章介绍了线稿约束&#xff0c;这篇文章介绍下深度Depth 文章目录 一、选大模型二、写提示词三、基础参数设置四、启用ControlNet 顾名思义&#xff0c;就是把原图预处理为深度图&#xff0c;而深度图可以区分出图像中各元素的远近关系&#xff0c;那么啥事深度图&#xf…

本机防攻击简介

定义 在网络中&#xff0c;存在着大量针对CPU&#xff08;Central Processing Unit&#xff09;的恶意攻击报文以及需要正常上送CPU的各类报文。针对CPU的恶意攻击报文会导致CPU长时间繁忙的处理攻击报文&#xff0c;从而引发其他业务的中断甚至系统的中断&#xff1b;大量正常…

惠尔顿 网络安全审计系统 任意文件读取漏洞复现

0x01 产品简介 惠尔顿网络安全审计产品致力于满足军工四证、军工保密室建设、国家涉密网络建设的审计要求&#xff0c;规范网络行为&#xff0c;满足国家的规范&#xff1b;支持1-3线路的internet接入、1-3对网桥&#xff1b;含强大的上网行为管理、审计、监控模块&#xff1b…