Linux系统之一次性计划任务at命令的基本使用

news2024/11/27 1:20:38

Linux系统之一次性计划任务at命令的基本使用

  • 一、at命令介绍
  • 二、at命令的使用帮助
    • 2.1 at命令的help帮助信息
    • 2.2 at命令的语法解释
  • 三、at命令的日常使用
    • 3.1 立即执行一次性任务
    • 3.2 指定时间执行一次性任务
    • 3.3 查询计划任务
    • 3.4 其他指定时间用法
    • 3.5 删除已经设置的计划任务
    • 3.6 显示某计划任务详细内容
  • 四、at与crontab命令的区别
  • 五、at命令的使用注意事项

在这里插入图片描述

一、at命令介绍

at命令是一个计划任务工具,可以让用户在指定的时间执行某个命令或者脚本,at命令用于管理一次性计划任务。

二、at命令的使用帮助

2.1 at命令的help帮助信息

在命令行中使用help查询at命令的使用帮助信息

[root@jeven ~]# at --help
at: invalid option -- '-'
Usage: at [-V] [-q x] [-f file] [-mMlbv] timespec ...
       at [-V] [-q x] [-f file] [-mMlbv] -t time
       at -c job ...
       atq [-V] [-q x]
       at [ -rd ] job ...
       atrm [-V] job ...
       batch

2.2 at命令的语法解释

  • 语法
at [-V] [-q 队列] [-f 文件] [-mldbv] 时间 at -c 作业 [作业...]
  • 选项
-f:指定包含具体指令的任务文件;
-q:指定新任务的队列名称;
-l:显示待执行任务的列表;
-d:删除指定的待执行任务;
-m:任务执行完成后向用户发送E-mail。
  • 参数
日期时间:指定任务执行的日期时间。

三、at命令的日常使用

3.1 立即执行一次性任务

立即执行一次性任务,使用 at now 命令,输入该命令后,会在终端下面出现一个at>提示符,此时输入要执行的命令,然后按下Ctrl+D即可。

[root@jeven ~]# at now
at> echo "hello" >> /tmp/aa.txt
at> <EOT>
job 1 at Thu Nov 16 16:16:00 2023

这个命令会在当前时间执行一次性任务,将字符串"hello "追加到/tmp/aa.txt文件中。

[root@jeven ~]# cat /tmp/aa.txt
hello

3.2 指定时间执行一次性任务

输入该命令后,会在终端下面出现一个at>提示符,此时输入要执行的命令,然后按下Ctrl+D即可

[root@jeven ~]# at 16:22
at> echo "test" >> /tmp/test.txt
at> <EOT>
job 2 at Thu Nov 16 16:22:00 2023

在16:22时间后,查询字符串"test"已成功追加到/tmp/test.txt文件中。

[root@jeven ~]# cat /tmp/test.txt
test

3.3 查询计划任务

计划任务设定后,在没有执行之前我们可以用atq命令来查看系统没有执行工作任务。

[root@jeven ~]# atq
2	Thu Nov 16 16:22:00 2023 a root

3.4 其他指定时间用法

  • 指定2天后的下午5点执行命令df -hT命令
[root@jeven ~]# at 5:00pm+2 days
at> /bin/df -hT
at> <EOT>
job 3 at Sat Nov 18 17:00:00 2023
  • 明天上午8点,将时间输出到指定文件。
[root@jeven ~]# at 08:00am  tomorrow
at> date >> /tmp/date.txt
at> <EOT>
job 4 at Fri Nov 17 08:00:00 2023

3.5 删除已经设置的计划任务

查询还未执行的计划任务

[root@jeven ~]# at -l
3	Sat Nov 18 17:00:00 2023 a root
4	Fri Nov 17 08:00:00 2023 a root

删除已经设置的计划任务

atrm 3

3.6 显示某计划任务详细内容

显示某计划任务详细内容

at -c 4
#!/bin/sh
# atrun uid=0 gid=0
# mail root 0
umask 22
XDG_SESSION_ID=8; export XDG_SESSION_ID
HOSTNAME=jeven; export HOSTNAME
SHELL=/bin/bash; export SHELL
HISTSIZE=1000; export HISTSIZE
SSH_CLIENT=192.168.3.168\ 56614\ 22; export SSH_CLIENT
SSH_TTY=/dev/pts/0; export SSH_TTY
http_proxy=http://127.0.0.1:38457; export http_proxy
USER=root; export USER
LS_COLORS=rs=0:di=01\;34:ln=01\;36:mh=00:pi=40\;33:so=01\;35:do=01\;35:bd=40\;33\;01:cd=40\;33\;01:or=40\;31\;01:mi=01\;05\;37\;41:su=37\;41:sg=30\;43:ca=30\;41:tw=30\;42:ow=34\;42:st=37\;44:ex=01\;32:\*.tar=01\;31:\*.tgz=01\;31:\*.arc=01\;31:\*.arj=01\;31:\*.taz=01\;31:\*.lha=01\;31:\*.lz4=01\;31:\*.lzh=01\;31:\*.lzma=01\;31:\*.tlz=01\;31:\*.txz=01\;31:\*.tzo=01\;31:\*.t7z=01\;31:\*.zip=01\;31:\*.z=01\;31:\*.Z=01\;31:\*.dz=01\;31:\*.gz=01\;31:\*.lrz=01\;31:\*.lz=01\;31:\*.lzo=01\;31:\*.xz=01\;31:\*.bz2=01\;31:\*.bz=01\;31:\*.tbz=01\;31:\*.tbz2=01\;31:\*.tz=01\;31:\*.deb=01\;31:\*.rpm=01\;31:\*.jar=01\;31:\*.war=01\;31:\*.ear=01\;31:\*.sar=01\;31:\*.rar=01\;31:\*.alz=01\;31:\*.ace=01\;31:\*.zoo=01\;31:\*.cpio=01\;31:\*.7z=01\;31:\*.rz=01\;31:\*.cab=01\;31:\*.jpg=01\;35:\*.jpeg=01\;35:\*.gif=01\;35:\*.bmp=01\;35:\*.pbm=01\;35:\*.pgm=01\;35:\*.ppm=01\;35:\*.tga=01\;35:\*.xbm=01\;35:\*.xpm=01\;35:\*.tif=01\;35:\*.tiff=01\;35:\*.png=01\;35:\*.svg=01\;35:\*.svgz=01\;35:\*.mng=01\;35:\*.pcx=01\;35:\*.mov=01\;35:\*.mpg=01\;35:\*.mpeg=01\;35:\*.m2v=01\;35:\*.mkv=01\;35:\*.webm=01\;35:\*.ogm=01\;35:\*.mp4=01\;35:\*.m4v=01\;35:\*.mp4v=01\;35:\*.vob=01\;35:\*.qt=01\;35:\*.nuv=01\;35:\*.wmv=01\;35:\*.asf=01\;35:\*.rm=01\;35:\*.rmvb=01\;35:\*.flc=01\;35:\*.avi=01\;35:\*.fli=01\;35:\*.flv=01\;35:\*.gl=01\;35:\*.dl=01\;35:\*.xcf=01\;35:\*.xwd=01\;35:\*.yuv=01\;35:\*.cgm=01\;35:\*.emf=01\;35:\*.axv=01\;35:\*.anx=01\;35:\*.ogv=01\;35:\*.ogx=01\;35:\*.aac=01\;36:\*.au=01\;36:\*.flac=01\;36:\*.mid=01\;36:\*.midi=01\;36:\*.mka=01\;36:\*.mp3=01\;36:\*.mpc=01\;36:\*.ogg=01\;36:\*.ra=01\;36:\*.wav=01\;36:\*.axa=01\;36:\*.oga=01\;36:\*.spx=01\;36:\*.xspf=01\;36:; export LS_COLORS
MAIL=/var/spool/mail/root; export MAIL
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/node-v14.17.0-linux-x64/bin/:/usr/local/bin:/root/bin; export PATH
PWD=/root; export PWD
LANG=en_US.UTF-8; export LANG
https_proxy=https://127.0.0.1:38457; export https_proxy
HISTCONTROL=ignoredups; export HISTCONTROL
SHLVL=1; export SHLVL
HOME=/root; export HOME
LOGNAME=root; export LOGNAME
XDG_DATA_DIRS=/root/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share; export XDG_DATA_DIRS
SSH_CONNECTION=192.168.3.168\ 56614\ 192.168.3.166\ 22; export SSH_CONNECTION
LESSOPEN=\|\|/usr/bin/lesspipe.sh\ %s; export LESSOPEN
XDG_RUNTIME_DIR=/run/user/0; export XDG_RUNTIME_DIR
NODE_HOME=/root/node-v14.17.0-linux-x64/bin/; export NODE_HOME
cd /root || {
	 echo 'Execution directory inaccessible' >&2
	 exit 1
}
${SHELL:-/bin/sh} << 'marcinDELIMITER200a5ac0'
date >> /tmp/date.txt

marcinDELIMITER200a5ac0

四、at与crontab命令的区别

at和crontab都是用于任务调度的命令,但是它们的使用场景和运行方式不同,at命令适用于一次性的任务调度,而crontab命令适用于周期性的任务调度。。

  • at命令是一次性的任务调度,它允许用户将任务安排到指定的时间点运行一次,该任务将在指定的时间点被执行一次后立即被销毁。at命令适用于只需要执行一次的任务,例如立即发送一封电子邮件或在明天早上备份系统。

  • crontab命令则可以定期重复执行指定的任务,它可以在固定的时间间隔内不间断地运行任务。crontab命令常用于周期性的任务,例如每天备份数据库或定时清理日志文件。

五、at命令的使用注意事项

  • at命令不适用于需要用户交互的程序,它只适用于一些可以直接运行的命令或程序。

  • at命令需要root用户或具备特殊权限的用户才能进行操作。

  • at命令虽然可以在指定的时间运行命令或程序,但不保证一定会在该时间运行,因为系统可能会出现一些延迟。

  • at命令可以运行多个命令或程序,只需要将它们以分号隔开即可。

  • at命令在执行命令或程序时,会自动在后台进行,不会在当前终端显示结果,如果需要查看结果,需要手动查看日志文件或者输出到文件中。

  • at命令的执行时间必须按照24小时制的时间格式指定。

  • at命令可以使用atq命令查看等待运行的任务列表,使用atrm命令删除未执行的任务。

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

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

相关文章

C语言——计算Fibonacci数列

方式一 for循环 (20位) #define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h> int main() {int n;int a[20]{1,1};for ( n 1; n <20; n){a[n]a[n-2]a[n-1];}for ( n 0; n < 20; n){if(n%50)printf("\n");printf("%12d ",a[n]);}return 0; …

【每日一题】无限集中的最小数字

文章目录 Tag题目来源题目解读解题思路方法一&#xff1a;有限集合方法二&#xff1a;有序集合 写在最后 Tag 【有序集合】【2023-11-29】 题目来源 2336. 无限集中的最小数字 题目解读 设计一个类实现移除无限集中的最小整数以及向该无限集中增加一个原集合中不存在的整数。…

【JavaEE初阶】 HTTP响应报文

文章目录 &#x1f332;序言&#x1f38d;200 OK&#x1f340;404 Not Found&#x1f384;403 Forbidden&#x1f334;405 Method Not Allowed&#x1f38b;500 Internal Server Error&#x1f333;504 Gateway Timeout&#x1f332;302 Move temporarily&#x1f38d;301 Move…

vs2012切换版本后WebUI项目加载失败,右键重新加载提示已经在解决方案中打开了具有该名称的项目

问题描述 vs2012切换版本后&#xff0c;回到主版本web项目加载失败&#xff0c;右键重新加载提示已经在解决方案中打开了具有该名称的项目 解决办法 打开根目录.csproj文件&#xff0c;找到第一个ProectTypeGuides节点&#xff0c;删除掉。然后关闭vs,重新打开此项目即可。这…

rust-flexi_logger

flexi_logger 是字节开源的rust日志库。目前有log4rs、env_log 等库&#xff0c;综合比较下来&#xff0c;还是flexi_logger简单容易上手&#xff0c;而且自定义很方便&#xff0c;以及在效率方面感觉也会高&#xff0c;下篇文章我们来测试下。 下面来看下怎么使用 关注 vx gol…

bugku题解记录2

文章目录 哥哥的秘密黄道十二官where is flag一段新闻 哥哥的秘密 给出了一个qq&#xff0c;那就去看看呗 hint里面说 收集空间信息——相册——收集微博信息——相册——解题——相册——提交flag 那看看空间先 盲文&#xff1a; hint&#xff1a;密码时地人 旗帜存在相册里…

Nature子刊最新研究:Hi-C宏基因组揭示土壤-噬菌体-宿主相互作用

土壤中有大量的噬菌体。然而&#xff0c;大多数宿主未知&#xff0c;无法获得其基因组特征。2023年11月23日&#xff0c;最新发表于《Nature communications》期刊题为“Hi-C metagenome sequencing reveals soil phage–host interactions”的文章&#xff0c;通过高通量染色体…

京东数据产品推荐-京东数据挖掘-京东平台2023年10月滑雪装备销售数据分析

如今&#xff0c;滑雪正成为新一代年轻人的新兴娱乐方式&#xff0c;借助北京冬奥会带来的发展机遇&#xff0c;我国冰雪经济已逐渐实现从小众竞技运动到大众时尚生活方式的升级。由此也带动滑雪相关生意的增长&#xff0c;从滑雪服靴到周边设备&#xff0c;样样都需要消费者掏…

基于Eclipse+SDK+ADT+DDMS的安卓开发环境完整搭建过程

基于EclipseSDKADTDDMS的安卓开发环境完整搭建过程 1 基本概念2 SDK安装3 Eclipse安装4 ADT插件安装4.1 在线安装&#xff08;太慢不建议选择&#xff09;4.2 离线安装&#xff08;建议选择&#xff09; 5 配置SDK6 集成安装7 创建安卓虚拟设备8 创建并启动安卓虚拟机8 关于DDM…

Zemax光学设计——单透镜设计

单透镜系统参数&#xff1a; 入瞳直径&#xff1a;20mm F/#&#xff08;F数&#xff09;&#xff1a;10 全视场&#xff1a;10 波长&#xff1a;587nm 材料&#xff1a;BK7 优化方向&#xff1a;最佳均方根光斑直径 设计步骤 一、单透镜系统参数 步骤一&#xff1a;入…

45、Flink 的指标体系介绍及验证(2)-指标的scope、报告、系统指标以及追踪、api集成示例和dashboard集成

Flink 系列文章 1、Flink 部署、概念介绍、source、transformation、sink使用示例、四大基石介绍和示例等系列综合文章链接 13、Flink 的table api与sql的基本概念、通用api介绍及入门示例 14、Flink 的table api与sql之数据类型: 内置数据类型以及它们的属性 15、Flink 的ta…

【傻瓜级JS-DLL-WINCC-PLC交互】7.​C#直连PLC并读取PLC数据

思路 JS-DLL-WINCC-PLC之间进行交互&#xff0c;思路&#xff0c;先用Visual Studio创建一个C#的DLL控件&#xff0c;然后这个控件里面嵌入浏览器组件&#xff0c;实现JS与DLL通信&#xff0c;然后DLL放入到WINCC里面的图形编辑器中&#xff0c;实现DLL与WINCC的通信。然后PLC与…

有理有据:数据库选择集中式还是分布式

OLTP类型的业务系统采用集中式数据库还是分布式数据库是在做国产数据库改造中经常被问到的问题&#xff0c;无论是对技术架构发展演变&#xff0c;还是对现有业务长期发展提供必要的支撑&#xff0c;这个问题都具有讨论意义。在分布式大行其道的背景下&#xff0c;似乎任何架构…

三年后重启港股IPO,卷出国门后的宁德时代实力几何?

近些年&#xff0c;国内的新能源汽车发展如火如荼&#xff0c;与之紧密相关的动力电池企业也搭上了发展的高速列车。经过初期的扩产潮后&#xff0c;国内动力电池行业目前产能过剩的风险正在逐渐加剧。 国内的头部企业为了减轻库存压力&#xff0c;在新一轮的竞争与洗牌周期中…

【C++】STL --- 哈希

哈希 一、 unordered 系列关联式容器1. unordered系列关联式容器2. unordered_map3. unordered_set 二、底层结构1. 哈希概念2. 哈希冲突3. 哈希函数4. 解决哈希冲突&#xff08;1&#xff09;闭散列&#xff08;2&#xff09;开散列 三、封装哈希表1. 模板参数列表的改造2. 迭…

【带头学C++】----- 八、C++面向对象编程 ---- 8.8 内联函数 inline

目录 8.8 内联函数 inline 8.8.1 声明内联函数 8.8.2 宏函数与内联函数的区别 8.8.3 使用内联函数需注意 8.9 函数重载 8.9.1 什么是函数重载 8.9.2 函数重载的条件 8.9.3 函数重载底层原理是如何实现的&#xff1f; 8.8 内联函数 inline 在C中&#xff0c;inline是一个…

单片机_RTOS_架构

一. RTOS的概念 // 经典单片机程序 void main() {while (1){喂一口饭();回一个信息();} } ------------------------------------------------------ // RTOS程序 喂饭() {while (1){喂一口饭();} }回信息() {while (1){回一个信息();} }void main() {create_task(喂饭);cr…

leetcode 611. 有效三角形的个数(优质解法)

代码&#xff1a; class Solution {public int triangleNumber(int[] nums) {Arrays.sort(nums);int lengthnums.length;int n0; //三元组的个数//c 代表三角形最长的那条边for (int clength-1;c>2;c--){int left0;int rightc-1;while (left<right){if(nums[left]nums[r…

生成式AI与预测式AI的主要区别与实际应用

近年来&#xff0c;预测式人工智能&#xff08;Predictive AI&#xff09;通过先进的推荐算法、风险评估模型、以及欺诈检测工具&#xff0c;一直在推高着该领域公司的投资回报率。然而&#xff0c;今年初突然杀出的生成式人工智能&#xff08;Generative AI&#xff09;突然成…

数据库其它调优策略

文章目录 1. 优化MySQL服务器2. 优化数据库结构2.1 差分表&#xff1a;冷热数据分离 3. 大表优化3.1 读/写分离3.2 垂直拆分3.3 水平拆分 1. 优化MySQL服务器 电商平台&#xff0c;双十一&#xff0c;CPU使用率达到99%&#xff0c;系统的计算资源已经耗尽&#xff0c;再也无法…