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命令提交作业
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是默认随系统启动而启动)