当前位置: 首页 > news >正文

了解linux计划任务

本章主要介绍如何创建计划任务
  • 使用 at 创建计划任务
  • 使用 crontab 创建计划任务
有时需要在某个指定的时间执行一个操作,此时就要使用计划任务了。计划任务有两种:
一个是at计划任务,另一个是 crontab计划任务。
下面我们分别来看这两种计划任务的使用方法。
21.1 at
at计划任务是一次性的,到了指定的时间点就开始执行指定的命令,执行完成之后,不会
重复执行这个命令。
首先查看系统中是否存在at计划任务,命令是atq或at -1(字母1),命令如下。
[root@pp ~]# atq
[root@pp ~]# at -l
[root@pp ~]# 

这两个命令都没有任何输出,说明当前系统中并不存在任何计划任务。下面开始创建at计 划任务,at的用法如下。

1 at 时间点 <按【Enter】键>
2 > 输入要执行的命令
3 Ctrl+D 提交
例如,要在2025年12月12日执行hostname命令,命令如下。
[root@pp ~]# at 2025-12-12
warning: commands will be executed using /bin/sh
at> hostname
at> <EOT>
job 1 at Fri Dec 12 00:35:00 2025
[root@pp ~]# 
这里只是指定了日期,并没有指定在2025年12月12日的几点执行。那么,创建这个计划
任务时是几点几分,例如,这里是在19点11分创建的at计划任务,那么到了2025年12月12
日的19点11分就要自动执行hostname命令了。
如果要指定某个时间点,格式如下。
1 at 时间 日期 <按【Enter】键>
2 > 输入要执行的命令
3 Ctrl+D 提交
注意
(1)这里是24小时制的,所以10:00指的是上午10点,如果想指定下午10点,则要写成22:00。
(2)写时间最多只能精确到分,不能精确到秒。
这里上午用am表示,下午用pm表示。例如,要在2025年12月12日下午10点执行
hostname命令,命令如下。
[root@pp ~]# at 10pm 2025-12-12
warning: commands will be executed using /bin/sh
at> hostname
at> <EOT>
job 2 at Fri Dec 12 22:00:00 2025
[root@pp ~]# 
at也支持某天之后的某个时间点运行一个命令。例如,要在3天之后的下午4点执行,
hostname命令,命令如下。
[root@pp ~]# at 4pm + 3days
warning: commands will be executed using /bin/sh
at> hostname
at> <EOT>
job 3 at Mon Dec 11 16:00:00 2023
[root@pp ~]# 
这里“+”两边有没有空格都可以,days可以换成weeks,表示3周之后的下午4点。
用关键字tomorrow,如果使用关键字tomorrow,则不需要加“+”,命令如下。
[root@pp ~]# at 4pm tomorrow
warning: commands will be executed using /bin/sh
at> hostname
at> <EOT>
job 4 at Sat Dec  9 16:00:00 2023
[root@pp ~]# 
上面的两条命令都是表示第二天的下午4点执行hostname命令。

如果要表示几分钟或几小时之后,可以用关键字now。例如,要在2小时之后执行
hostname命令,命令如下。
[root@pp ~]# at now+2hours
warning: commands will be executed using /bin/sh
at> hostname
at> <EOT>
job 5 at Fri Dec  8 02:40:00 2023
[root@pp ~]# 

21.2 crontab

at计划任务是一次性的,执行完成就结束,不会重复执行。如果想定期执行某个任务,例
如,每周日凌晨2点执行一个命令,这时就要用到crontab了。
查看当前用户是否有 crontab计划任务,可以用crontab-1命令。如果要查看其他用户是
否有crontab计划任务,可以用“crontab -1-u用户名”命令,不过-u选项只有root才能
用。
步骤①:使用root用户查看自己有没有crontab计划任务,命令如下。
[root@pp ~]# crontab -l
no crontab for root
[root@pp ~]# 
步骤②:使用root用户查看iu用户是否有crontab计划任务,命令如下。
[root@pp ~]# crontab -l -u iu
no crontab for iu
[root@pp ~]# 
创建crontab计划任务的命令是crontab -e,如果为其他用户创建crontab计划任务,则
用“crontab -e -u用户名”命令。当使用crontab-e命令时,会打开一个临时文件,用与
vim 一样的语法来编辑此文件即可。先按【i】键进入插入模式,编辑完成之后,按【Esc】
键退回到命令模式,在末行模式中输入“wq”保存退出。在此文件中凡是以“#”开头的,都
是注释行。
crontab定义计划任务的语法如下。
1 分 时 天 月 周 命令
注意
因为在crontab中使用的并非系统的PATH变量,所以此处语法中要执行的命令最好能加上路径,
例如,要执行ifconfig命令,则写作/sbin/ifconfig;要执行hostname命令,则写作
bin/hostname。命令的路径可以通过which命令来查询。

几个时间单位的意义如下。
(1)分:几点几分的分。
(2)时:几点,24小时制。
(3)天:几号。
(4)月:几月份。
(5)周:星期几。
这几个时间单位可以用空格,也可以用【Tab】键来分隔。
如果不考虑某个时间单位,例如,不管今天是几号,只要不是周末我们就上班,不考
虑“天”的情况下,那么可以用*表示。
这里每个时间点都可以写多个值,用英文逗号“,”隔开,例如,在分的位置写“0,1.,5,10",
表示0分、1分、5分、10分。
也可以用横杠“-”表示“到”的意思,例如,在分的位置写“0-10”,表示0到10分。
这里“0-10”的完整写法是“0-10/1”,表示从0分到10分的每一分钟,从0开始每次增
加1,然后到10。如果表示“每N分钟”,则写成“0-10/N”,例如,0到10中每2分钟,则
写成“0-10/2”,表示0分、2分、4分、6分、8分、10分。
练习1:每天上午7点整执行hostname命令,如果写成如下命令。
1 # 分 时 天 月 周
2 * 7 * * * hostname
这种写法是不对的,第一个位置是分,这里写成了*,表示7点的每一分,包括0分、1
分……但是所谓7点整的意思是7点0分,所以要写成如下命令。
练习2:每周一到周五的上午7点整执行hostname命令,命令如下。
1 # 分 时 天 月 周
2 0 7 * * 1,2,3,4,5 hostname
现在最终的crontab计划任务内容如下。
[root@pp ~]# crontab -l
0 7 * * * hostname
0 7 * * 1,2,3,4,5 hostname[root@pp ~]
如果要编辑 crontab计划任务,通过crontab -e来重新编辑;如果要删除,执行 crontab -
r命令即可
普通用户也是可以创建crontab计划任务的,如果不想让这个用户创建crontab计划任务,
则把这个用户写入/etc/cron.deny中即可,一行一个用户。这个文件默认为空,命令如下。
[root@pp ~]# cat /etc/cron.deny 
[root@pp ~]# 
如果不希望iu用户创建crontab计划任务,则把tom用户写入这个文件中,命令如下。
[root@pp ~]# echo iu > /etc/cron.deny 
[root@pp ~]# cat /etc/cron.deny 
iu
[root@pp ~]# 
如果又想让 tom用户可以创建crontab计划任务,有以下两种方法。
(1)把tom用户从/etc/cron.deny 中删除,这种方法大家自行练习。
(2)创建/etc/cron.allow,这个文件默认不存在,把tom用户名写到此文件中,命令如
下。
[root@pp ~]# echo > /etc/cron.allow
[root@pp ~]# 
现在tom既出现在/etc/cron.allow中,又出现在/etc/cron.deny中
在第二个标签中用tom登录,crontab计划任务是能够创建的。
系统中也自带一些crontab计划任务,在/etc 中存在几个以cron开头的目录,命令如下。
[root@pp ~]# ls /etc/cron*
/etc/cron.allow  /etc/cron.deny  /etc/crontab/etc/cron.d:
0hourly  raid-check/etc/cron.daily:
logrotate/etc/cron.hourly:
0anacron/etc/cron.monthly:/etc/cron.weekly:
[root@pp ~]# 
每天都会执行一次/etc/crondaily中的脚本,每小时都会执行一次/etc/cron.hourly中的
脚本,每月都会执行一次/etc/cron.monthly中的脚本,每周都会执行一
次/etc/cron.weekly中的脚本。

相关文章:

了解linux计划任务

本章主要介绍如何创建计划任务 使用 at 创建计划任务 使用 crontab 创建计划任务 有时需要在某个指定的时间执行一个操作&#xff0c;此时就要使用计划任务了。计划任务有两种&#xff1a; 一个是at计划任务&#xff0c;另一个是 crontab计划任务。 下面我们分别来看这两种计…...

等待和通知

引入 由于线程是抢占式执行的,因此线程之间的执行的先后顺序难以预知 但是实际开发中我们希望合理协调多个线程之间执行的先后顺序. 这里的干预线程先后顺序,并不是影响系统的调度策略(内核里调度线程,仍然是无序调度). 就是相当于在应用程序代码中,让后执行的线程主动放弃被…...

vscode 如何将正则匹配到的字符前批量加字符

最近想用vscode将正则匹配到的东西签名批量https&#xff0c;替换时可以用$1来替换正则匹配到的字符串&#xff0c;如下所示...

上个月暴涨34.6%后,SoundHound AI股票现在还能买入吗?

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 揭开SoundHound AI股价波动的原因 S&P Global Market Intelligence的数据显示&#xff0c;在摆脱了10月份的大幅下跌后&#xff0c;SoundHound AI的股价在11月份实现了34.6%的涨幅。 原因是该公司公布了稳健的第三季…...

Termux+Hexo结合内网穿透轻松实现安卓手机搭建博客网站发布公网访问

文章目录 前言 1.安装 Hexo2.安装cpolar3.远程访问4.固定公网地址 前言 Hexo 是一个用 Nodejs 编写的快速、简洁且高效的博客框架。Hexo 使用 Markdown 解析文章&#xff0c;在几秒内&#xff0c;即可利用靓丽的主题生成静态网页。 下面介绍在Termux中安装个人hexo博客并结合…...

程序员的养生指南(生命诚可贵,一人永流传!珍惜生命,从你我做起)

作为程序员&#xff0c;我们经常需要长时间坐在电脑前工作&#xff0c;这对我们的身体健康造成了很大的影响。为了保持健康&#xff0c;我们需要采取一些养生措施来延寿。下面是我个人的一些养生经验和建议&#xff0c;希望能对大家有所帮助。 1、合理安排工作时间&#xff1a;…...

FP独立站怎么搭建?看这一篇就够了!强烈建议收藏!

在2023疫情结束年&#xff0c;商家为了在跨境电商市场上获取更多的份额&#xff0c;FP建站需求大军席卷而来&#xff0c;越来越多的创业者和企业开始涉足跨境电商独立站领域&#xff0c;尤其是FP独立站&#xff0c;FP商家想要通过FP独立站、FP广告投放&#xff0c;FP支付&#…...

【华为OD题库-068】找出经过特定点的路径长度-java

题目 输入一个字符串&#xff0c;都是以大写字母组成&#xff0c;每个相邻的距离是1&#xff0c;第二行输入一个字符串&#xff0c;表示必过的点。 说明 每个点可过多次。求解经过这些必过点的最小距离是多少? 示例1 输入输出示例仅供调试&#xff0c;后台判题数据一般不包含示…...

高性能队列框架-Disruptor使用、Netty结合Disruptor大幅提高数据处理性能

高性能队列框架-Disruptor 首先介绍一下 Disruptor 框架&#xff0c;Disruptor是一个通用解决方案&#xff0c;用于解决并发编程中的难题&#xff08;低延迟与高吞吐量&#xff09;&#xff0c;Disruptor 在高并发场景下性能表现很好&#xff0c;如果有这方面需要&#xff0c;…...

Linux学习笔记3 xshell(lnmp)

xshell能连接虚拟机的前提是真机能够ping通虚拟机网址 装OpenSSL依赖文件 [rootlocalhost nginx-1.12.2]# yum -y install openssl pcre-devel 依赖检测[rootlocalhost nginx-1.12.2]# ./configure [rootlocalhost nginx-1.12.2]# yum -y install zlib [rootlocalhost n…...

分享几个可以免费使用GPT工具

1. 国产可以使用GPT3.5和4.0的网站&#xff0c;每日有免费的使用额度&#xff0c;响应速度&#xff0c;注册时不用使用手机号&#xff0c;等个人信息&#xff0c;注重用户隐私&#xff0c;好评&#xff01; 一个好用的ChatGPT系统 &#xff0c;可以免费使用3.5 和 4.0https://…...

一篇文章带你快速入门 Nuxt.js 服务端渲染

1. Nuxt.js 概述 1.1 我们一起做过的SPA SPA&#xff08;single page web application&#xff09;单页 Web 应用&#xff0c;Web 不再是一张张页面&#xff0c;而是一个整体的应用&#xff0c;一个由路由系统、数据系统、页面&#xff08;组件&#xff09;系统等等&#xff0…...

导入JDBC元数据到Apache Atlas

前言 前期实现了导入MySQL元数据到Apache Atlas, 由于是初步版本&#xff0c;且功能参照Atlas Hive Hook&#xff0c;实现的不够完美 本期对功能进行改进&#xff0c;实现了导入多种关系型数据库元数据到Apache Atlas 数据库schema与catalog 按照SQL标准的解释&#xff0c;…...

大数据项目——基于Django/协同过滤算法的房源可视化分析推荐系统的设计与实现

大数据项目——基于Django/协同过滤算法的房源可视化分析推荐系统的设计与实现 技术栈&#xff1a;大数据爬虫/机器学习学习算法/数据分析与挖掘/大数据可视化/Django框架/Mysql数据库 本项目基于 Django框架开发的房屋可视化分析推荐系统。这个系统结合了大数据爬虫、机器学…...

[网鼎杯 2020 朱雀组]phpweb1

提示 call_user_func()函数先通过php内置函数来进行代码审计绕过system&#xff08;##不止一种方法&#xff09; 拿到题目养成一个好的习惯先抓个包 从抓到的包以及它首页的报错来看&#xff0c;这里死活会post传输两个参数func以及p func传输函数&#xff0c;而p则是传输参数的…...

深度学习之注意力机制

注意力机制与外部记忆 注意力机制与记忆增强网络是相辅相成的&#xff0c;神经网络去从内存中或者外部记忆中选出与当前输入相关的内容时需要注意力机制&#xff0c;而在注意力机制的很多应用场景中&#xff0c;我们的外部信息也可以看作是一个外部的记忆 这是一个阅读理解任务…...

WordPress:解决xmlrpc.php被扫描爆破的风险

使用WordPress的朋友都知道&#xff0c;一些【垃圾渣渣】会利用xmlrpc.php文件来进行攻击&#xff0c;绕过WP后台错误登录次数限制进行爆破。虽然密码复杂的极难爆破&#xff0c;但及其占用服务器资源。 方法一、利用宝塔防火墙&#xff08;收费版&#xff09; 一般可以直接使…...

Fiddler抓包模拟器(雷电模拟器)

Fiddler设置 List item 打开fiddler,的options 点击OK,重启fiddler 模拟器 更改网络设置 IP可以在电脑上终端上查看 然后在模拟器浏览器中输入IP:端口 安装证书...

RepidJson将内容写入文件

使用 RapidJSON 将内容写入文件的步骤如下&#xff1a; 创建一个 rapidjson::Document 对象&#xff0c;将需要写入文件的内容存储到其中。创建一个 rapidjson::StringBuffer 对象来保存 JSON 字符串。将 rapidjson::Document 对象转换为 JSON 字符串&#xff0c;并将其放入 r…...

Endnote使用教程

原由 最近要进行开题报告&#xff0c;要求不低于60文献的阅读与引用&#xff0c;单独插入引入我觉得是非常繁琐的事情&#xff0c;所以就借助Endnote这个工具&#xff0c;减少我们的工作量。 使用方法 第一步&#xff1a;先新建一个数据库&#xff0c;这样子可以在这个数据库…...

测试微信模版消息推送

进入“开发接口管理”--“公众平台测试账号”&#xff0c;无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息&#xff1a; 关注测试号&#xff1a;扫二维码关注测试号。 发送模版消息&#xff1a; import requests da…...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合

强化学习&#xff08;Reinforcement Learning, RL&#xff09;是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程&#xff0c;然后使用强化学习的Actor-Critic机制&#xff08;中文译作“知行互动”机制&#xff09;&#xff0c;逐步迭代求解…...

工业安全零事故的智能守护者:一体化AI智能安防平台

前言&#xff1a; 通过AI视觉技术&#xff0c;为船厂提供全面的安全监控解决方案&#xff0c;涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面&#xff0c;能够实现对应负责人反馈机制&#xff0c;并最终实现数据的统计报表。提升船厂…...

HTML前端开发:JavaScript 常用事件详解

作为前端开发的核心&#xff0c;JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例&#xff1a; 1. onclick - 点击事件 当元素被单击时触发&#xff08;左键点击&#xff09; button.onclick function() {alert("按钮被点击了&#xff01;&…...

CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云

目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...

c#开发AI模型对话

AI模型 前面已经介绍了一般AI模型本地部署&#xff0c;直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型&#xff0c;但是目前国内可能使用不多&#xff0c;至少实践例子很少看见。开发训练模型就不介绍了&am…...

C++八股 —— 单例模式

文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全&#xff08;Thread Safety&#xff09; 线程安全是指在多线程环境下&#xff0c;某个函数、类或代码片段能够被多个线程同时调用时&#xff0c;仍能保证数据的一致性和逻辑的正确性&#xf…...

Linux --进程控制

本文从以下五个方面来初步认识进程控制&#xff1a; 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程&#xff0c;创建出来的进程就是子进程&#xff0c;原来的进程为父进程。…...

【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论

路径问题的革命性重构&#xff1a;基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中&#xff08;图1&#xff09;&#xff1a; mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...

Elastic 获得 AWS 教育 ISV 合作伙伴资质,进一步增强教育解决方案产品组合

作者&#xff1a;来自 Elastic Udayasimha Theepireddy (Uday), Brian Bergholm, Marianna Jonsdottir 通过搜索 AI 和云创新推动教育领域的数字化转型。 我们非常高兴地宣布&#xff0c;Elastic 已获得 AWS 教育 ISV 合作伙伴资质。这一重要认证表明&#xff0c;Elastic 作为 …...