linux 指定时间 执行一次 命令

本文介绍了Linux中使用at命令来设定一次性定时任务的方法,包括如何指定时间、日期,以及使用诸如midnight、noon等特殊时间词。还提到了atq和atrm命令用于查看和删除待执行的任务,并解释了batch命令的使用,它会在系统不繁忙时运行作业。此外,文章提及了at命令在Linux环境中的应用和设置。

linux 指定时间 执行一次 命令

指令:

echo "hello I am JingYong aaaaa " >> at.txt | at 16:35 2022-08-01

输入密码怎么办?

at允许使用一套相当复杂的指定时间的方法:

● 能够接受在当天的hh:mm(小时:分钟)式的时间指定。假如该时间已过去,那么就放在第二天执行。 例如:04:00
● 能够使用midnight(深夜),noon(中午),teatime(饮茶时间,一般是下午4点)等比较模糊的词语来指定时间。
● 能够采用12小时计时制,即在时间后面加上AM(上午)或PM(下午)来说明是上午还是下午。 例如:12pm
● 能够指定命令执行的具体日期,指定格式为month day(月 日)或mm/dd/yy(月/日/年)或dd.mm.yy(日.月.年),指定的日期必须跟在指定时间的后面。 例如:04:00 2009-03-1
● 能够使用相对计时法。指定格式为:now + count time-units ,now就是当前时间,time-units是时间单位,这里能够是minutes(分钟)、hours(小时)、days(天)、weeks(星期)。count是时间的数量,几天,几小时。 例如:now + 5 minutes 04pm + 3 days
● 能够直接使用today(今天)、tomorrow(明天)来指定完成命令的时间。

也许你的Ubuntu没有at命令,先安装
sudo apt install at

在某时刻执行命令

  • at 15:30:回车之后,需要在at后输入指令,表示在15:30要执行的指令
  • 比如输入touch attest.txt,表示在15:30创建一个名为attest.txt的文件
  • 你还可以继续在at后添加命令,也可以选择退出ctrl+D
    在明天15:30执行
  • at 15:30 tomorrow
    在2019年10月20日15:30执行
  • at 15:30 10/20/19
    在30分钟后执行
  • at now +30 minutes
    atq列出等待中的延时任务
    atrm撤销延时任务
  • atrm 1:撤销编号为1的延时任务

用at命令提交作业

at命令用来向atd守护进程提交需要在特定时间运行的作业.要运行的命令可以作为脚本提交(用-f命令行选项),也可以

通过标准输入直接输入.命令的标准输出将用电子邮件的形式寄给用户

at [[-f filename] | [-m]] time

规定一天中的时间可以用HH:MM格式,后面附加"am"或"pm",也可以用"midnight","noon"和"teatime"待词语.日期也可以

用好几种格式规定,其中mm/dd/yy

例如要在14:13这个时间生成一个名叫at.txt的文件并在文件中写入"hello I am JingYong"信息

[root@sidatabase /]# echo "hello I am JingYong " > at.txt | at 14:13

job 1 at 2013-08-23 14:13

查看作业

[root@sidatabase /]# atq

1 2013-08-23 14:13 a root

删除作业

[root@sidatabase /]# atrm 1

用batch延迟任务

batch命令与at命令一样,用来延迟任务.与at命令不同的是,batch命令不在特定时间运行,而是等到系统不忙于别的

任务时运行.如果提交作业时机器不繁忙,可以立即运行作业.batch守护进程会监控系统的平均负载(load average)

等待它降到0.8以下,然后开始运行作业任务.

batch命令的语法与at命令的语法一模一样,可以用标准输入规定作业,也可以用-f命令行选项把作业作为batch文件

来提交.如果规定了时间,batch会延迟到指定的时间开始观察机器,那时,atd将开始监控系统的平均负载,并且在系统

不繁忙时运行作业.

##at命令介绍

linux 中执行任务计划有三种命令:at ,batch ,cron.其中,at,batch 是一次性执行,而crontab,则是周期性执行。

指令:at

定时任务,指定一个时间执行一个任务,只执行一次。

语法:# at [参数] [时间]

at> 执行的指令

退出at命令 ctrl+d

命令前提:

需要开启atd进程(在redhat中atd是默认随系统启动而启动)

<think>首先,用户的问题是:“Linux指定某个时间执行命令或脚本”,意思是“Linux指定某个时间执行命令或脚本”。我需要用中文回答。 我的回答应该包括: 1. 解释如何在Linux指定时间执行命令或脚本。 2. 在回答末尾,必须提出3-5个相关问题。 3. 相关问题必须以“§§相关问题§§”开头,并且不能换行分散;必须完整输出在第一行。 4. 相关问题应该基于用户的问题和我的回答。 关键工具:在Linux中,常用的工具是`cron`用于定时任务,或者`at`命令用于单次定时执行。我应该覆盖这些。 回答结构: - 先简要介绍方法。 - 给出示例。 - 然后列出相关问题。 相关问题:必须3-5个,基于用户的问题和我的回答。例如: 1. 如何设置cron任务? 2. 如何使用at命令? 3. 如何查看或删除定时任务? 4. 如何处理错误或日志? 5. 是否有其他工具? 确保所有内容用中文。 最终输出格式: - 回答部分。 - 然后“§§相关问题§§” - 接着1. 2. 3. ... 相关问题。 示例格式中,有代码块,所以我也应该包括代码示例。 现在,构建回答: 1. 介绍:在Linux中,可以使用`cron`来设置周期性的定时任务,或者使用`at`命令指定单次执行时间。 2. 详细解释: - 对于`cron`:编辑crontab文件。 - 示例:`crontab -e` 然后添加一行如 `0 3 * * * /path/to/script.sh` 表示每天3执行。 - 对于`at`:使用`at`命令指定时间。 - 示例:`at 3:00 PM tomorrow` 然后输入命令。 3. 代码示例:可能包括crontab条目或at命令的使用。 4. 相关问题:基于这个,提出3-5个问题。 相关问题想法: 1. 如何设置每天特定时间执行的cron任务? 2. 如何使用at命令执行一次性任务? 3. 如何管理cron任务(如编辑、删除)? 4. 在cron中如何处理环境变量? 5. at命令有哪些时间格式? 确保3-5个。 最终输出: - 回答。 - “§§相关问题§§” - 1. ... - 2. ... - 3. ...</think>在 Linux 中,指定某个时间执行命令或脚本通常使用 `cron` 工具(用于周期性任务)或 `at` 命令(用于单次任务)。以下是详细方法: ### 1. **使用 `cron` 设置周期性任务** `cron` 是 Linux 自带的定时任务守护进程,通过编辑 crontab 文件来配置任务。 - **基本语法**:`crontab -e` 编辑当前用户的 crontab 文件,添加一行格式为: `分钟 小时 日 月 周 命令` 例如,每天凌晨 3 执行脚本: `0 3 * * * /path/to/script.sh` - **示例**:设置每周一 10:30 执行命令 `echo "Hello"` ```bash 30 10 * * 1 echo "Hello" >> /tmp/log.txt ``` - **关键操作**: - `crontab -l` 查看当前任务。 - `crontab -r` 删除所有任务(谨慎使用)。 ### 2. **使用 `at` 命令设置单次任务** `at` 命令用于在指定时间执行一次性任务。需先安装(如 Ubuntu:`sudo apt install at`)。 - **基本用法**: - 输入 `at [时间]`,然后输入命令,按 `Ctrl+D` 结束。 - 时间格式灵活,如 `at 15:00 tomorrow` 或 `at now + 1 hour`。 - **示例**:在明天下午 2 执行脚本 ```bash at 2:00 PM tomorrow at> /path/to/script.sh at> <EOT> # 按 Ctrl+D 退出 ``` - **管理任务**: - `atq` 查看队列。 - `atrm [任务ID]` 删除任务。 ### 注意事项 - **权限问题**:确保脚本有可执行权限(`chmod +x script.sh`)。 - **日志与调试**:使用重定向(如 `>> /tmp/cron.log 2>&1`)捕获输出。 - **系统服务**:确保 `cron` 或 `atd` 服务运行(`sudo systemctl status cron`)。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值