Linux计划任务

        当需要在某一个指定的时间执行一个操作,这个时候就需要用到计划任务。计划任务分为at计划任务和crontab计划任务。

1.使用at创建计划任务

        at计划任务是一次性的,到了指定时间点就开始执行指定的命令,执行完成后不会重复执行这个命令。
        首先查看系统中是否存在at计划任务,命令是atq或at -1,命令如下。

1 [root@server ~]# atq
2 [root@server ~]#
3 [root@server ~]# at -1
4 [root@server ~]#

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

1 at 时间点 <按【Enter】键>
2 > 输入要执行的命令
3 Ctrl+D 提交

        例如,要在2024年11月11日执行hostname命令,命令如下。

1 [root@server ~]# at 2024-11-11
2 warning: commands will be executed using /bin/sh
3 at> hostname
4 at> <EOT>
5 job 1 at Mon Nov 11 12:18:00 2024
6 [root@server ~]# 

        这里只是指定了日期,并没有指定在2024年11月11日几点执行。那么,创建这个计划任务时是几点几分,例如,这里是在19点11分创建的at计划任务,那么到了2024年11月11日的19点11分就要自动执行hostname命令了。

        如果要指定某个时间点,格式如下。

1 at 时间 日期 <按【Enter】键>
2 > 输入要执行的命令
3 Ctrl+D 提交

        例如,要在2024年11月11日上午十点执行hostname命令,命令如下。

1 [root@server ~]# at 10:00 2024-11-11
2 warning: commands will be executed using /bin/sh
3 at> hostname
4 at> <EOT>
5 job 2 at Mon Nov 11 10:00:00 2024
6 [root@server ~]#

注意

        (1)这里是24小时制,所以10:00指的是上午的10点,如果想指定晚上10点,则要写成22:00。

        (2)写时间最多只能精确到分,不能精确到秒。

        这里上午用am表示,下午用pm表示。例如,要在2024年11月11日下午10点执行hostname命令,命令如下。

1 [root@server ~]# at 10pm 2024-11-11
2 warning: commands will be executed using /bin/sh
3 at> hostname
4 at> <EOT>
5 job 3 at Mon Nov 11 22:00:00 2025
6 [root@server ~]#

        at也支持某天之后的某个时间点运行一个命令。例如,要在3天之后的下午4点执行,hostname命令,命令如下。

1 [root@server ~]# at 4pm + 3days
2 warning: commands will be executed using /bin/sh
3 at> hostname
4 at> <EOT>
5 job 4 at Sun Dec 10 16:00:00 2023
6 [root@server ~]#

        这里"+"两边有没有空格都可以,days可以换成weeks,表示3周之后的下午4点。

        如果想在第二天的下午4点执行hostname命令,命令如下。

1 [root@server ~]# at 4pm + 1days
2 warning:commands will be executed using /bin/sh
3 at> hostname
4 at> <EOT>
5 job 5 at Thur Dec 28 16:00:00 2023
6 [root@server ~]#

        或者用关键字tomorrow,如果使用关键字tomorrow,则不需要加"+",命令如下。

1 [root@server ~]# at 4pm tomorrow
2 [warning commands will be executed using /bin/sh
3 at> hostname
4 at> <EOT>
5 job 6 at Fri Nov 8 16:00:00 2023
6 [root@server ~]

        上面的两条命令都是表示第二天的下午4点执行hostname命令。

        这样的关键字还包括today,表示"今天"。例如,要在今天下午10点执行hostname命令,命

令如下。

1 [root@server ~]# at 10pm today
2 warning: commands will be executed using /bin/sh
3 at> hostname
4 at> <EOT>
5 job 7 at Fri Nov 7 22:00:00 2023
6 [root@server ~]#

        如果是今天执行一个命令,关键字today是可以不写的,不写日期默认就是"今天"。

1 [root@server ~]# at 10pm
2 warning: commands will be
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值