2023_Spark_实验二十七:Linux中Crontab(定时任务)命令详解及使用教程

news2025/1/20 5:48:56

Crontab介绍:

Linux crontab是用来crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。该词来源于希腊语 chronos(χρ?νο?),原意是时间。通常,crontab储存的指令被守护进程激活, crond常常在后台运行,每一分钟检查是否有预定的作业需要执行。这类作业一般称为cron jobs。当安装完成操作系统之后,默认便会启动此任务调度命令。crond 命令每分锺会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。

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

实验目的:通过crontab模拟调用实时点击流数据生成脚本,模拟实时数据生成,支持后续实验

实验方法:通过crontab+shell脚本模拟实时数据产生。

实验步骤:

1.使用yum命令安装Crontab:

[lh@master real-timeData]$ sudo yum install vixie-cron
[lh@master real-timeData]$ sudo yum install crontabs

2.查看Crontab状态:

# 查看crond状态
[lh@master real-timeData]$ service crond status

# 或者
[lh@master real-timeData]$ systemctl status crond


# 检查其是否自启  # centos7
[lh@master real-timeData]$ systemctl is-enabled crond
 
# centos6.x
[lh@master real-timeData]$ chkconfig --list crond

3.添加定时任务:

cd /home/lh/scripts/real-timeData/
mkdir logs
crontab -e

# 配置模拟实时数据产生的代码定时运行
1 * * * * /home/lh/scripts/real-timeData/real-time-producer.sh >> /home/lh/scripts/real-timeData/logs/`date +%Y%m%d`.log

4.查看任务列表:

[lh@master real-timeData]$ crontab -l

5.Crontab相关命令:

(1)语  法:

crontab [-u <用户名称>][配置文件] 或 crontab { -l | -r | -e }-u #<用户名称> 是指设定指定<用户名称>的定时任务,这个前提是你必须要有其权限(比如说是 root)才能够指定他人的时程表。如果不使用 -u user 的话,就是表示设定自己的定时任务。-l  #列出该用户的定时任务设置。-r  #删除该用户的定时任务设置。-e  #编辑该用户的定时任务设置。

(2)命令时间格式 :

* *   *  *  *  command

分  时  日  月  周  命令

第1列表示分钟1~59 每分钟用*或者 */1表示

第2列表示小时1~23(0表示0点)

第3列表示日期1~31

第4列表示月份1~12

第5列标识号星期0~6(0表示星期天)

第6列要运行的命令

(3)一些Crontab定时任务例子:

30 21 * * * /usr/local/etc/rc.d/lighttpd restart #每晚的21:30 重启apache

45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart #每月1、10、22日的4 : 45重启apache

10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart #每周六、周日的1 : 10重启apache

0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart #每天18 : 00至23 : 00之间每隔30分钟重启apache

0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart #每星期六的11 : 00 pm重启apache* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart #晚上11点到早上7点之间,每隔一小时重启apache* */1 * * * /usr/local/etc/rc.d/lighttpd restart #每一小时重启apache

0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart #每月的4号与每周一到周三的11点重启apache

0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart #一月一号的4点重启apache

*/30 * * * * /usr/sbin/ntpdate cn.pool.ntp.org #每半小时同步一下时间

0 */2 * * * /sbin/service httpd restart #每两个小时重启一次apache

50 7 * * * /sbin/service sshd start #每天7:50开启ssh服务

50 22 * * * /sbin/service sshd stop #每天22:50关闭ssh服务

0 0 1,15 * * fsck /home #每月1号和15号检查/home 磁盘

1 * * * * /home/bruce/backup #每小时的第一分执行 /home/bruce/backup这个文件

00 03 * * 1-5 find /home "*.xxx" -mtime +4 -exec rm {} \; #每周一至周五3点钟,在目录/home中,查找文件名为*.xxx的文件,并删除4天前的文件。

30 6 */10 * * ls #每月的1、11、21、31日是的6:30执行一次ls命令

6.部分脚本无法执行问题:

如果我们使用 crontab 来定时执行脚本,无法执行,但是如果直接通过命令(如:./test.sh)又可以正常执行,这主要是因为无法读取环境变量的原因。

解决方法:

(1)所有命令需要写成绝对路径形式,如: /usr/local/bin/docker。

(2)在 shell 脚本开头使用以下代码:

#!/bin/sh

/etc/profile

~/.bash_profile

(3)在 /etc/crontab 中添加环境变量,在可执行命令之前添加命令 . /etc/profile;/bin/sh,使得环境变量生效,例如:

20 03 * * * . /etc/profile;/bin/sh /var/www/wwwroot/test.sh

7.Crontab默认调度任务:

cron默认配置了调度任务,分别为:hourly、daily、weekly、mouthly,默认配置文件为/etc/anacrontab

将需要执行的脚本放到相应的目录下即可,目录分别为:

/etc/cron.hourly

/etc/cron.daily

/etc/cron.weekly

/ect/cron.mouthly

8.注意清理系统用户的邮件日志:

每条任务调度执行完毕,系统都会将任务输出信息通过电子邮件的形式发送给当前系统用户,这样日积月累,日志信息会非常大,可能会影响系统的正常运行,因此,将每条任务进行重定向处理非常重要。

例如,可以在crontab文件中设置如下形式,忽略日志输出:

0 */3 * * * /usr/local/apache2/apachectl restart >/dev/null 2>&1

“/dev/null 2>&1”表示先将标准输出重定向到/dev/null,然后将标准错误重定向到标准输出,由于标准输出已经重定向到了/dev/null,因此标准错误也会重定向到/dev/null,这样日志输出问题就解决了。

9.Crontab日志路径:

ll /var/log/cron* #/var/log/cron只会记录是否执行了某些计划的脚本,但是具体执行是否正确以及脚本执行过程中的一些信息则linux会每次都发邮件到该用户下。

10.Crontab命令在线验证工具:

crontab执行时间计算 - 在线工具 (tool.lu)

定时任务最快为每分钟调度一次,因为我们要摸底用户的搜索点击数据,以分钟为单位明显达不到要求,后期的spark streaming处理是以秒为单位的,明显不符合要求,需要手动改造为每五秒生成一次数据

11. 改造步骤3添加定时任务

# 配置模拟实时数据产生的代码定时运行
1 * * * * for i in {1..12}; do /home/lh/scripts/real-timeData/real-time-producer.sh >> /home/lh/scripts/real-timeData/logs/real-time-data.log; sleep 5; done

(1)将1分钟拆分成12等分(等同于每5秒执行一次)

(2)执行sh脚本,“>>”表示将输出追加到对应的日志文件中,

(3)sleep 5,休眠5秒,这样就相当于5秒执行一次

实验结果:

查看日志文件如下

[lh@master logs]$ cat real-time-data.log

查看crontab运行日志如下

sudo cat /var/log/cron

实验结论:

通过crontab+shell脚本可以实现模拟实时数据产生,得到每5秒一条数据记录。

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

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

相关文章

MySQL生僻字修改编码utf8mb4

1、查看你编码 SHOW VARIABLES WHERE Variable_name LIKE character_set_% OR Variable_name LIKE collation%;&#xff08;如果不是下图则继续&#xff09; 2、修改默认参数 /etc/my.cnf [mysqld] datadir/usr/local/mysql/data basedir/usr/local/mysql socket/usr/local/my…

Python内置类属性__str__的使用教程

概要 在Python中&#xff0c;每个类都有一些内置的特殊属性和方法&#xff0c;用于实现一些特殊的功能。其中一个特殊属性是__str__&#xff0c;它允许我们定义一个类的对象在打印时的输出格式。在本文中&#xff0c;我们将详细介绍__str__属性的使用教程&#xff0c;帮助读者…

MySQL:update set的坑

目录 一、问题描述 二、为何会出现这样的问题&#xff1f; 三、正确的方案 一、问题描述 我在修改mysql数据表时&#xff0c;看到下面的现象。 我表中原始数据如下&#xff1a; 执行了下面的修改&#xff0c;显示执行成功。 update user_function_record_entity set open_…

华为数通---配置ARP安全综合功能案例

简介 ARP&#xff08;Address Resolution Protocol&#xff09;安全是针对ARP攻击的一种安全特性&#xff0c;它通过一系列对ARP表项学习和ARP报文处理的限制、检查等措施来保证网络设备的安全性。ARP安全特性不仅能够防范针对ARP协议的攻击&#xff0c;还可以防范网段扫描攻击…

微信小程序 长按录音+录制视频

<view class"bigCircle" bindtouchstart"start" bindtouchend"stop"><view class"smallCircle {{startVedio?onVedio:}}"><text>{{startVedio?正在录音:长按录音}}</text></view> </view> <…

unity 2d 入门 飞翔小鸟 下坠功能且碰到地面要停止 刚体 胶囊碰撞器 (四)

1、实现对象要受重力 在对应的图层添加刚体 改成持续 2、设置胶囊碰撞器并设置水平方向 3、地面添加盒状碰撞器 运行则能看到小鸟下坠并落到地面上

排针排母是什么

排针排母 电子元器件百科 文章目录 排针排母前言一、什么是排针排母二、排针排母有哪些类别三、排针排母的应用实例四、排针排母的作用原理总结前言 排针排母连接器广泛应用于电子行业中,如电脑、手机、电视、打印机、工控设备等。它们提供了一种简单、可靠且灵活的连接解决方…

借助文档控件Aspose.Words,比较 Word、PDF 和 PPT 文档

在当今的数字时代&#xff0c;文档比较已成为一项重要任务&#xff0c;尤其是在法律、金融和合规相关行业。在比较 C# 中的文档时&#xff0c;Aspose API 提供了强大的解决方案。在这篇博文中&#xff0c;我们将探讨如何在 C# 中比较文档。分步指南和代码示例将演示如何比较两个…

MFC对话框集成OSG无法响应键盘事件

最近编译了OSG3.7的源码&#xff0c;通过MFC对话框集成显示。使用过程中&#xff0c;自定义的按键消息无法正常响应&#xff08;控制台窗口通过openGL的设备上下文环境可以正常响应&#xff0c;所以不是输入法的问题&#xff09;。网上搜了一下&#xff0c;发现相关文章很少&am…

盲盒小程序搭建:实现盲盒消费新体验

近几年来&#xff0c;潮玩市场中的盲盒逐渐席卷了年轻一代人的生活&#xff0c;吸引了不少消费者。盲盒的不确定性给消费者带来了惊喜和快乐&#xff0c;盲盒的商业价值也是逐渐增加&#xff0c;预计2024年盲盒市场规模将突破300亿元。 但在当下互联网快速发展的时代下&#x…

关于 mapboxgl 的常用方法及效果

给地图标记点 实现效果 /*** 在地图上添加标记点* point: [lng, lat]* color: #83f7a0*/addMarkerOnMap(point, color #83f7a0) {const marker new mapboxgl.Marker({draggable: false,color: color,}).setLngLat(point).addTo(this.map);this.markersList.push(marker);},…

微信小程序 -- ios 底部小黑条样式问题

问题&#xff1a; 如图&#xff0c;ios有的机型底部伪home键会显示在按钮之上&#xff0c;导致点击按钮的时候误触 解决&#xff1a; App.vue <script>export default {wx.getSystemInfo({success: res > {let bottomHeight res.screenHeight - res.safeArea.bott…

react 学习笔记 李立超老师 | (学习中~)

文章目录 react学习笔记01入门概述React 基础案例HelloWorld三个API介绍 JSXJSX 解构数组 创建react项目(手动)创建React项目(自动) | create-react-app事件处理React中的CSS样式内联样式 | 内联样式中使用state (不建议使用)外部样式表 | CSS Module React组件函数式组件和类组…

GUI的简单概述和基本使用

GUI的概念 1&#xff0c;到目前为止&#xff0c;我们编写的都是控制输入的程序&#xff0c;操作使用非常不直观&#xff0c;采取一直方式让效果呈现在窗口上。 2&#xff0c;GUI及图形界面指采用图像方式显示的用户界面&#xff0c;与早期计算机的命令行界面相比&#xff0c;…

CSS——选择器、PxCook软件、盒子模型

1、选择器 1.1 结构伪类选择器 作用&#xff1a;根据元素的结构关系查找元素。 1.1.1 :nth-child&#xff08;公式&#xff09; 作用&#xff1a;根据元素的结构关系查找多个元素 <!DOCTYPE html> <html lang"en"> <head><meta charset"…

SimplePIR——目前最快单服务器匿踪查询方案

一、介绍 这篇论文旨在实现高效的单服务器隐私信息检索&#xff08;PIR&#xff09;方案&#xff0c;以解决在保护用户隐私的同时快速检索数据库的问题。为了实现这一目标&#xff0c;论文提出了两种新的PIR方案&#xff1a;SimplePIR和DoublePIR。这两种方案的实现基于学习与错…

【桑基图】绘制桑基图

绘制桑基图 一、绘制桑基图&#xff08;1&#xff09;方法一&#xff1a;去在线网站直接绘制&#xff08;2&#xff09;方法二&#xff1a;写html之后在vscode上运行 二、遇到的问题&#xff08;1&#xff09;当导入一些excel的时候&#xff0c;无法绘制出桑基图 一、绘制桑基图…

B 站基于 StarRocks 构建大数据元仓

作者&#xff1a;bilibili 大数据高级开发工程师 杨洋 B站大数据元仓是一款用来观测大数据引擎运行情况、推动大作业治理的系统诊断产品。经过调研和性能测试&#xff0c;大数据元仓最终以 StarRocks 为技术底座&#xff0c;从实际的应用效果来看&#xff0c;大部分查询都能在几…

准确!!!在 CentOS 8 上配置 PostgreSQL 14 的主从复制

在 CentOS 8 上配置 PostgreSQL 14 的主从复制&#xff0c;并设置 WAL 归档到特定路径 /home/postgres/archive 的步骤如下&#xff1a; 主服务器配置&#xff08;主机&#xff09; 配置 PostgreSQL&#xff1a; 编辑 postgresql.conf 文件&#xff1a; vim /data/postgres/p…

AIGC之Image2Video(一)| Animate Anyone:从静态图像生成动态视频,可将任意图像角色动画化

近日&#xff0c;阿里发布了Animate Anyone&#xff0c;只需一张人物照片&#xff0c;结合骨骼动画&#xff0c;就能生成人体动画视频。 项目地址&#xff1a;https://humanaigc.github.io/animate-anyone/ 论文地址&#xff1a;https://arxiv.org/pdf/2311.17117.pdf Github…