Linux学习笔记-Ubuntu下使用Crontab设置定时任务

文章目录

  • 一、概述
  • 二、基于crontab的设置
    • 2.1 基本命令说明
    • 2.2 使用-e指令编辑命令
      • 2.2.1 进入编辑模式
      • 2.2.2 指令信息格式
      • 2.2.4 开启日志
        • 1) 修改rsyslog配置文件
        • 2) 重启rsyslog
        • 3) 查看日志
      • 2.2.3 设置后之后重启服务
  • 三、示例
    • 3.1 每隔一分钟往文件中日期
    • 3.2 使用-l查看任务列表
    • 3.3 使用-r删除所有任务
    • 3.4 设置定时关机
  • 总结

白衣沽酒绮罗生
百代繁华一朝都,谁非过客;千秋明月吹角寒,花是主人。
网图,侵删

一、概述

crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。该词来源于希腊语 chronos(χρνο),原意是时间。
通常,crontab储存的指令被守护进程激活, crond常常在后台运行,每一分钟检查是否有预定的作业需要执行。这类作业一般称为cron jobs。
通过Crontab我们可以设置按照按照固定的周期执行某一些操作。
测试用Ubuntu系统信息:

Ubuntu 22.04.3 LTS (GNU/Linux 5.15.0-83-generic x86_64)

二、基于crontab的设置

2.1 基本命令说明

crontab [-u username] filepath
crontab [-u username] [-l|-e|-r]
  • -u:此参数为root账户用于给其他用户设置周期任务使用,仅root账户可用;
  • -e:编辑crontab的内容;
  • -l:查看crontab的内容;
  • -r:移除所有crontab的内容,若紧要移除其中一项,需要使用-e进行编辑;
  • filepath:通过文件路径指定要定期致性的文件,建议使用绝对路径。

2.2 使用-e指令编辑命令

2.2.1 进入编辑模式

zero@ubuntu:/etc$ crontab -e		# 直接使用-e指令编辑信息
no crontab for zero - using an empty one		# 初次使用提示当前没有信息

Select an editor.  To change later, run 'select-editor'.		# 要求选择默认的编辑器
  1. /bin/nano        <---- easiest
  2. /usr/bin/vim.basic
  3. /usr/bin/vim.tiny
  4. /bin/ed

Choose 1-4 [1]: 2		# 我选了了2
crontab: installing new crontab
zero@ubuntu:/etc$

设置完之后会自动打开编辑器用于编辑指令,可以看到基本的提示内容:
在这里插入图片描述
这是vim编辑界面,编辑完成后“:wq”就可以保存退出了。

2.2.2 指令信息格式

crontab的工作内容包括6个字段,5个时间参数以及一个指令:

字段分钟小时日期月份指令
数字范围0-590-231-311-120-7具体的指令

特殊字符和注意信息:

  • 周的数字代表的是星期几,0和7都代表星期天;
  • *(星号):型号标识任何的意思,就是无论什么数值都符合条件;
  • ,(逗号):标识分割时段的意思,如3,6标识的是3和6都可以;
  • -(减号):代表一定的范围段,包头尾,如3-5,标识3,4,5都可以;
  • */n(斜线):标识间隔,即间隔n致性一次,如分钟设置为*/5或者0-59/5就是标识每个5分钟执行一次。

2.2.4 开启日志

ubuntu默认没有开启crontab的日志,需要手动开启日志。
通过配置rsyslog,启用crontab的日志。

1) 修改rsyslog配置文件
# 注意修改日志配置文件需要使用root权限。
zero@ubuntu:/var/log$ sudo vim /etc/rsyslog.d/50-default.conf

去掉cron日志行签名的星号,然后“:wq”保存退出。

cron.* /var/log/cron.log 

在这里插入图片描述

2) 重启rsyslog

使用service命令重启rsyslog服务。

zero@ubuntu:/var/log$ service rsyslog restart
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to restart 'rsyslog.service'.
Authenticating as: Zero (zero)
Password:
==== AUTHENTICATION COMPLETE ===
3) 查看日志

重启之后,crontab有操作时,会发现文件中出现了日志文件。
在这里插入图片描述

使用tail查看日志

zero@ubuntu:/var/log$ tail /var/log/cron.log
Nov 22 03:10:01 ubuntu CRON[2030]: (root) CMD (test -e /run/systemd/system || SERVICE_MODE=1 /sbin/e2scrub_all -A -r)
Nov 22 03:10:13 ubuntu crontab[2036]: (root) BEGIN EDIT (root)
Nov 22 03:10:25 ubuntu crontab[2036]: (root) REPLACE (root)
Nov 22 03:10:25 ubuntu crontab[2036]: (root) END EDIT (root)

2.2.3 设置后之后重启服务

设置完指令之后需要重启crontab服务才能正常执行任务。

zero@ubuntu:/mnt$ service cron restart		# 重启服务的指令
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to restart 'cron.service'.
Authenticating as: Zero (zero)
Password:
==== AUTHENTICATION COMPLETE ===
zero@ubuntu:/mnt$

**注:**亦可以通过service查看状态:

zero@ubuntu:/mnt$ service cron status
● cron.service - Regular background program processing daemon
	 #                                                 开机自启动
     Loaded: loaded (/lib/systemd/system/cron.service; enabled; vendor preset: enabled)
     # 状态:运行中
     Active: active (running) since Tue 2023-11-21 02:59:00 UTC; 22h ago
       Docs: man:cron(8)
   Main PID: 861 (cron)
      Tasks: 1 (limit: 4516)
     Memory: 500.0K
        CPU: 491ms
     CGroup: /system.slice/cron.service
             └─861 /usr/sbin/cron -f -P

Nov 22 01:12:01 ubuntu CRON[2819]: (CRON) info (No MTA installed, discarding output)
Nov 22 01:12:01 ubuntu CRON[2819]: pam_unix(cron:session): session closed for user zero
Nov 22 01:13:01 ubuntu CRON[2829]: pam_unix(cron:session): session opened for user zero(uid=1000) by (uid=0)
Nov 22 01:13:01 ubuntu CRON[2830]: (zero) CMD (sudo cat "test" >> /mnt/test.txt)
Nov 22 01:13:01 ubuntu CRON[2829]: (CRON) info (No MTA installed, discarding output)
Nov 22 01:13:01 ubuntu CRON[2829]: pam_unix(cron:session): session closed for user zero
Nov 22 01:14:01 ubuntu CRON[2832]: pam_unix(cron:session): session opened for user zero(uid=1000) by (uid=0)
Nov 22 01:14:01 ubuntu CRON[2833]: (zero) CMD (sudo cat "test" >> /mnt/test.txt)
Nov 22 01:14:01 ubuntu CRON[2832]: (CRON) info (No MTA installed, discarding output)
Nov 22 01:14:01 ubuntu CRON[2832]: pam_unix(cron:session): session closed for user zero

三、示例

3.1 每隔一分钟往文件中日期

# m h  dom mon dow   command
*/1 * * * * date >> /tmp/test.txt

几分钟之后查看文件结果如下:

zero@ubuntu:/tmp$ cat test.txt
Wed Nov 22 02:19:01 AM UTC 2023
Wed Nov 22 02:20:01 AM UTC 2023
Wed Nov 22 02:21:01 AM UTC 2023
Wed Nov 22 02:22:01 AM UTC 2023
Wed Nov 22 02:23:02 AM UTC 2023
Wed Nov 22 02:24:01 AM UTC 2023
Wed Nov 22 02:25:01 AM UTC 2023
Wed Nov 22 02:26:01 AM UTC 2023
Wed Nov 22 02:27:01 AM UTC 2023
Wed Nov 22 02:28:01 AM UTC 2023

**注:**所操作的文件需要具有权限。

3.2 使用-l查看任务列表

使用-l可以直接查看具体的任务,注意任务是按照用户划分的,不同用户查看具有不一样的结果:
这是默认用户查看:

zero@ubuntu:/tmp$ crontab -l
40 10 * * * sudo shutdown -h now

这是以管理员权限查看:

zero@ubuntu:/tmp$ sudo crontab -l
# m h  dom mon dow   command

管理员是空的。

3.3 使用-r删除所有任务

使用-r参数会删除crontab中的所有的任务清单。
删除后再次查看就会提示没有任何任务。

zero@ubuntu:/tmp$ crontab -r
zero@ubuntu:/tmp$ crontab -l
no crontab for zero

3.4 设置定时关机

关机需要使用root权限,设置时需要用sudo切换权限。

zero@ubuntu:~$ sudo crontab -l

关机指令如下:

# 分 时
  8 4 * * * shutdown -h now

总结

使用crontab可以便捷的设置定时任务,有助于执行一些定时任务,指令也可以通过脚本,这样可以一次执行多个指令并进行一些比较复杂的操作。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

腾讯云服务器99元一年?假的,阿里云是99元

腾讯云服务器99元一年是真的吗&#xff1f;假的&#xff0c;不用99元&#xff0c;只要88元即可购买一台2核2G3M带宽的轻量应用服务器&#xff0c;99元太多了&#xff0c;88元就够了&#xff0c;腾讯云百科活动 txybk.com/go/txy 活动打开如下图&#xff1a; 腾讯云服务器价格 腾…

【Redis篇】简述Java中操作Redis的方法

文章目录 &#x1f384;简述Jedis&#x1f384;Jedis优点&#x1f354;使用Jedis连接Redis⭐进行测试&#x1f388;进行测试 Redis&#xff08;Remote Dictionary Server&#xff09;是一种流行的高性能内存数据库&#xff0c;广泛应用于各种应用程序和系统中。作为Java开发人员…

政府采购变数大,联想还值不值得代理渠道商们“跟”?

文&#xff5c;新熔财经 作者&#xff5c;余一 “事业单位更换纯国产电脑”、“联想被排除在大订单之外”等消息下&#xff0c;联想硬件终端产品面临的问题日益严峻。 早在今年年初&#xff0c;联想集团&#xff08;下称联想&#xff09;掌门人杨元庆坦承&#xff0c;“智能…

阿里云学生认证可领300元无门槛代金券(高效计划)

阿里云高校计划学生和教师均可参与&#xff0c;完成学生认证和教师验证后学生可以免费领取300元无门槛代金券和3折优惠折扣&#xff0c;适用于云服务器等全量公共云产品&#xff0c;订单原价金额封顶5000元/年&#xff0c;阿里云百科aliyunbaike.com分享阿里云高校计划入口及学…

MySQL数据库入门到大牛_基础_11_数据处理之增删改

本章将会介绍DML中的增删改查操作&#xff0c;增删改泛泛来讲是针对表中数据的修改。 文章目录 1. 插入数据1.1 实际问题1.2 方式1&#xff1a;VALUES的方式添加1.3 方式2&#xff1a;将查询结果插入到表中 2. 更新数据3. 删除数据4. 小结5. MySQL8新特性&#xff1a;计算列6. …

微博头条文章开放接口报错 auth by Null spi

接口文档地址 https://open.weibo.com/wiki/Toutiao/api 接口说明 https://api.weibo.com/proxy/article/publish.json 请求方式 POST 请求参数 参数名称类型是否必需描述titlestring是文章标题&#xff0c;限定32个中英文字符以内contentstring是正文内容&#xff0c;限制9…

项目管理PMP6.0-五大过程组、十大知识领域、四十九个过程(记忆码:7664363734)

项目管理PMP6.0-五大过程组、十大知识领域、四十九个过程&#xff08;记忆码&#xff1a;7664363734&#xff09; 项目经理的影响力范围三者关系图&#xff08;五大过程组、十大知识领域、四十九个过程&#xff09;五大过程组十大知识领域十大知识领域之间联系 四十九个过程&am…

振南技术干货集:制冷设备大型IoT监测项目研发纪实(1)

注解目录 1.制冷设备的监测迫在眉睫 1.1 冷食的利润贡献 1.2 冷设监测系统的困难 &#xff08;制冷设备对于便利店为何如何重要&#xff1f;了解一下你所不知道的便利店和新零售行业。关于电力线载波通信的论战。&#xff09; 2、电路设计 2.1 防护电路 2.1.1 强电防护 …

redis的性能管理和雪崩

redis的性能管理 redis的数据是缓存在内存当中的 系统巡检&#xff1a; 硬件巡检、数据库、nginx、redis、docker、k8s 运维人员必须要关注的redis指标 在日常巡检中需要经常查看这些指标使用情况 info memory #查看redis使用内存的指标 used_memory:11285512 #数据占用的…

Maven中常用命令以及idea中使用maven指南

文章目录 Maven 常用命令compiletestcleanpackageinstallMaven 指令的生命周期maven 的概念模型 idea 开发maven 项目idea 的maven 配置idea 中创建一个maven 的web 工程在pom.xml 文件添加坐标坐标的来源方式依赖范围编写servlet maven 工程运行调试 Maven 常用命令 compile …

AI辅助带货直播场景源码系统 附带网站的搭建教程

互联网技术的发展和普及&#xff0c;直播带货行业迅速崛起。然而&#xff0c;直播带货在带来商机的同时&#xff0c;也面临着诸多挑战。如直播内容缺乏新意、转化率低等问题。针对这些问题&#xff0c;AI辅助带货直播场景源码系统应运而生&#xff0c;旨在利用人工智能技术&…

CSS实现三角形

CSS实现三角形 前言第一种:bordertransparent第二种borderrgb使用unicode字符 前言 本文讲解三种实现三角形的方式&#xff0c;并且配有图文以及代码解说。那么好&#xff0c;本文正式开始。 第一种:bordertransparent border是边框&#xff0c;而transparent是透明的颜色&a…

CentOS使用docker安装OpenGauss数据库

1.搜索OpenGauss docker search opengauss 2.选择其中一个源拉取 docker pull docker.io/enmotech/opengauss 3.运行OpenGauss docker run --name opengauss --privilegedtrue --restartalways -d -e GS_USERNAMEpostgres -e GS_PASSWORDmyGauss2023 -p 5432:5432 docker.…

抖音seo矩阵系统源代码部署及产品功能设计分析

一、引言 随着抖音等短视频平台的崛起&#xff0c;越来越多的企业和个人开始关注如何在这些平台上提升曝光量和用户流量。抖音SEO&#xff08;搜索引擎优化&#xff09;是一种有效的方法&#xff0c;通过优化短视频内容和关键词&#xff0c;让更多的人找到并点击你的视频。本文…

【从入门到起飞】JavaSE—多线程(2)(生命周期,线程安全问题,同步方法)

&#x1f38a;专栏【JavaSE】 &#x1f354;喜欢的诗句&#xff1a;路漫漫其修远兮&#xff0c;吾将上下而求索。 &#x1f386;音乐分享【如愿】 &#x1f384;欢迎并且感谢大家指出小吉的问题&#x1f970; 文章目录 &#x1f354;生命周期&#x1f384;线程的安全问题&#…

网络和Linux网络_4(应用层)序列化和反序列化(网络计算器)

目录 1. 重新理解协议 2. 网络版本计算器 2.1 前期封装 Log.hpp sock.hpp TcpServer.hpp 第一次测试(链接) 2.2 计算器实现 第二次测试(序列化和反序列化) 第三次测试(客户端字节流) CalServer.cc CalClient.cc 3. 守护进程 3.1 守护进程和前后台进程 3.1 变成…

黑苹果新手指导:名词解释常用软件常见问题说明

黑苹果新手指导&#xff1a;名词解释&常用软件&常见问题说明 写在前面名词解释系统篇引导篇工具篇 常见问题安装篇如何安装黑苹果&#xff1f;安装过程中卡在一排号怎么办&#xff1f;AMD处理器可以安装黑苹果 macOS吗&#xff1f;我的笔记本电脑为什么不能驱动独立显卡…

【腾讯云云上实验室-向量数据库】腾讯云开创新时代,发布全新向量数据库Tencent Cloud VectorDB

前言 随着人工智能、数据挖掘等技术的飞速发展&#xff0c;海量数据的存储和分析越来越成为重要的研究方向。在海量数据中找到具有相似性或相关性的数据对于实现精准推荐、搜索等应用至关重要。传统关系型数据库存在一些缺陷&#xff0c;例如存储效率低、查询耗时长等问题&…

腾讯云服务器99元一年是真的吗?假的!

腾讯云服务器99元一年是真的吗&#xff1f;假的&#xff0c;不用99元&#xff0c;只要88元即可购买一台2核2G3M带宽的轻量应用服务器&#xff0c;99元太多了&#xff0c;88元就够了&#xff0c;腾讯云百科活动 txybk.com/go/txy 活动打开如下图&#xff1a; 腾讯云轻量服务器 腾…

AIGC变革BI行业,永洪发布vividime全球化品牌

大数据产业创新服务媒体 ——聚焦数据 改变商业 国内BI商业智能市场&#xff0c;一直有着“内永洪&#xff0c;外Tableau”的说法。成立于2012年的永洪科技经过十多年的发展&#xff0c;早已崛起为国内大数据行业的一支劲旅。 ChatGPT火爆出圈之后&#xff0c;AIGC快速渗透&am…