定时任务是在服务器上常用到的一个工作。

在你指定的时间,系统会自动执行你指定的程序(脚本或者命令)。

Linxu系统中的定时任务不难,关键是如何写出正确的脚本。

在Linxu系统中,有三种用于任务调度的工具

at命令调用atd服务

crontab命令调用cron(crond)服务。

anacron工具。

(一)只执行一次的定时任务

需使用at命令。

at命令是一次性执行的定时任务。也就是说我在之后什么时间点,执行一次任务。

1、at服务管理

at命令要想正确执行,需要atd服务的支持。

atd服务是独立的服务,所以启动的命令如下:

[root@localhost ~]# service atd start

提示:

只要你的Linux系统是安装的,哪怕是最小化安装,at命令和cron命令默认都是启动的。

我们发现大多数服务最后都有个d,这个d代表Daemon(守护进程)的意思。

# 查看Linux系统中的进程

# 注意:第二行/usr/sbin/atd,才是atd服务。

[root@localhost ~]# ps aux | grep atd

rpcuser 1425 0.0 0.0 23352 1380 ? Ss 06:15 0:00 rpc.statd

root 1881 0.0 0.0 21108 496 ? Ss 06:15 0:00 /usr/sbin/atd

root 3332 0.0 0.0 103332 852 pts/2 S+ 09:29 0:00 grep atd

如果想要让atd服务开机时自动启动,可以设置如下命令:

[root@localhost ~]# chkconfig atd on

2、at命令的访问控制

atd服务启动之后,at命令才可以正常使用,我们还要学习下at命令的访问控制。

这里的访问控制指的是允许哪些用户使用at命令设定定时任务,或者不允许哪些用户使用at命令。

大家可以想象成为设定黑名单或设定白名单,这样更容易理解。at的访问控制是依靠/etc/at.allow文件(白名单)和/etc/at.deny文件(黑名单)这两个文件来实现的。

注:Linux系统中默认是没有/etc/at.allow文件的,用到的时候需要自己手动创建。

具体规则如下:

如果系统中有/etc/at.allow文件,那么只有写入/etc/at.allow文件(白名单)中的用户可以使用at命令,其他用户不能使用at命令(/etc/at.deny文件会被忽略,也就是说同一个用户既写入/etc/at.allow文件,也写入/etc/at.deny文件,那么这个用户是可以使用at命令的,因为/etc/at.allow文件优先级更高。)。

如果系统中没有/etc/at.allow文件,只有/etc/at.deny文件,那么写入/etc/at.deny文件(黑名单)中的用户不能使用at命令,其他用户可以使用at命令。不过这个文件对root用户不生效。

如果系统中这两个文件都不存在,那么只有root用户可以使用at命令。

系统中默认时只有/etc/at.deny文件,而且这个文件是空的,这样的话系统中所有的用户都可以使用at命令。不过如果我们打算控制用户的at命令权限,把用户写入/etc/at.deny文件即可。

/etc/at.allow文件的权限更高,如果/etc/at.allow文件存在,则/etc/at.deny文件失效。

/etc/at.allow管理行为更加严格,因为只有写入这个文件的用户才能使用at命令,如果需要禁用at命令的用户较多,则可以把少数用户写入这个文件。

/etc/at.deny文件的管理较为松散,如果允许使用at命令的用户较多,则可以把禁用的用户写入这个文件。

不过这两个文件都不能对root用户生效。

3、at命令

格式如下:

[root@localhost ~]# at [选项] 时间

选项:

-m:当at命令工作完成后,无论是否命令有输出,都用email通知执行at命令的用户。

-c工作号:显示该at工作的实际内容。

时间:

at支持的时间格式如下:

HH:ММ 在指定的“小时:分钟”执行命令,例如:05:30。

HH:MM YYYY-MM-DD 在指定的“小时:分钟 年-月-日”执行,例如05:30 2020-06-26。

HH:MM[am|pm][month][date] 在指定的“小时:分钟[上午|下午][月][日]“执行,例如05:30 July 25。

HH:MM[amlpm]+[minutes|hours|days|weeks] 在指定的时间“再加多久执行”,

例now + 5 minutes,05am + 2 hours。

at命令只要指定正确的时间,就可以输入需要在指定时间执行的命令了.这个命令可以是系统令,也可以是shell脚本。(也就是说确认命令的执行时间之后,按回车在输入你要执行的命令。)

示例:

# 1.编写一个shell脚本hello.sh

[root@localhost ~]# cat /root/hello. sh

#!/bin/bash

echo "hello world!!!!"

# 2.使用at命令在某个时间点执行该脚本

[root@localhost ~]# at now + 2 minutes

# 回车后,输入需要执行的命令

# 把hello.sh脚本输入的内容,写入指定的文件中

at> /root/hello.sh >> /root/hello.log

# 使用ctrltd 保存at任务

at>

job 1 at 2020-06-25 18:58

# 会提示你,第1个at任务,会在2020年6月25日18:58分执行

# 这个1代表工作号

查询指定的定时任务

# 查询第1个at任务的内容

# 可以看到at执行的任务内容

[root@localhost ~]# at -c 1(工作号)

# 可以看到有很多的内容

# 前面主要是定义系统的环境变量

# 最后面的

/root/hello.sh >>/root/hel1o.1og

提示:我们可以通过下面的atq命令查看到,Linux系统中at任务列表中,你所需要任务的工作号,然后在通过at -c (工作号)命令来查看一个at任务的具体内容。

在一个at任务中执行多个系统命令

# 在指定的时间关机。

[root@localhost ~]# at 02:00 2020-06-26

at> /bin/sync

at> /sbin/shutdown -h now

at>

job 1 at 2020-06-26 02:00

4、其他at管理命令

at还有查询(atq)命令和删除(atrm)命令。

命令如下:

# 1.查询当前服务器上的at工作

[root@localhost ~]# atq

例如:

# 说明:root用户有一个at在务在2020年6月25日的18:58执行,工作号是1

[root@localhost ~]# atq

1 2020-06-25 18:58 a root

# 通过atq命令查看at定时任务,只能看到工作号,执行时间,哪个用户执行

# 但是看不到具体执行的命令是什么,

# 2.删除指定的at在务

[root@localhost ~]# atrm [工作号]

例如:

# 删除1号at任务,然后通过atq命令查询就没有at任务存在了

[root@localhost ~]# atrm 1

5、总结

at命令平时用的并不多,因为at任务只能够执行一次任务。

linux定时关闭系统at,『学了就忘』Linux系统管理 — 8.系统定时任务(at命令)相关推荐

  1. linux日志服务是哪个,『学了就忘』Linux日志管理 — 2.日志服务rsyslogd

    1.日志文件格式 只要是由日志服务rsyslogd记录的日志文件,他们的格式是一样的. 基本日志格式包含以下内容: 事件产生的时间. 发生事件的服务器的主机名. 产生事件的服务名或程序名. 事件的具体 ...

  2. 『学了就忘』Linux基础 — UNIX系统介绍

    在学习Linux系统之前,我们先来了解以下UNIX系统. (一)UNIX系统介绍 在介绍Linux系统之前,我们先来了解以下UNIX系统. 1.UNIX系统发展历史 1965年,美国麻省理工学院(MI ...

  3. 昆明收银系统:『免费收银软件』到底是馅饼还是陷井?免费背后的危害。

    昆明收银系统:『免费收银软件』到底是馅饼还是陷井?免费背后的危害. 如果有人问您:"您最喜欢什么?",你一定答不上来,但是问您:"有免费的东西可拿哦,喜欢吗?" ...

  4. 『学了就忘系列』Linux基础命令 — 搜索操作相关命令

    1.whereis命令 whereis是搜索系统命令的命令,也就是说,whereis命令不能搜索普通文件,而只能搜索系统命令. whereis命令的基本信息如下: 命令名称:whereis 英文原意: ...

  5. 监管大屏系统_『Udesk数据大屏』独家上线,对客户服务监管一目了然·一览无遗。...

    数据大屏是企业沟通与交流的有效途径之一,当前,大屏已经成为一种新型媒体,他可以帮助企业进行品牌宣传.实力展示.商业交流.数据监控等重要的作用.像天猫双11活动中,阿里的双11大屏让人印象深刻,该大屏不 ...

  6. 比特币官方客户端钱包是用什么语言开发的_『学概念找员外』比特币网络(三)...

    「力场 lichang.io」公链挖矿第一社区! 网络大小 比特币网络大小很难测量,因为它随时都在变化,而且没有一个中央权威机构.有些人通过研究给了一些估计:往高说,每个月可能有100万个IP地址成为 ...

  7. 学了又忘?通俗易懂 Android视图系统的设计与实现!

    前言 说到Android视图大家第一反应肯定是Activity以及View,毕竟这是我们从入门开始接触最多的两个组件.但提到Activity和View之间联系以及设计背景可能会难道一大片人.其实关于视 ...

  8. linux服务器关闭蜂鸣报警,在Windows 10上禁用Linux Bash的蜂鸣声

    在Windows 10上禁用Linux Bash的蜂鸣声 在Windows 10上安装Linux Bash非常酷,但就我从微软提供的不太好的终端而言,我将陷入Ubuntu的困境. 无论如何,当你在Ba ...

  9. linux cron实例,cron,linux定时实施工具详解及实例

    cron,linux定时执行工具详解及实例 cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业.由于Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动.关 ...

  10. 【Linux】一步一步学Linux——Linux系统常用快捷键(12) 待更新...

    00. 目录 文章目录 00. 目录 01. Gnome下的快捷键 02. 其它 03. 参考 温馨提示:该博客后续更新,敬请关注... 01. Gnome下的快捷键 Alt + F1:类似Windo ...

最新文章

  1. MapReduce编程实例之自定义分区
  2. SAP MM PR中的Fixed ID字段与MD04里PR单据号后的星号
  3. matplotlib 中将图直接从buffer中变为PIL 再到numpy
  4. TcpClient和TcpListener 类的使用-编写一个点对点聊天工具(初级入门篇)
  5. linux磁盘混乱,Linux磁盘设备文件混乱源于Linux内核自身
  6. tourist取模模板
  7. .NET Core 跨平台 串口通讯 ,Windows/Linux 串口通讯
  8. 如何通过示例在Java中使用CopyOnWriteArraySet
  9. [css] 你知道什么是动态伪类吗?
  10. zabbix通过自动发现功能实现自动识别网络设备接口
  11. This iPhone is running iOS 12.2(16E227),which may be supported by this version of Xcode
  12. 恋舞ol服务器维护中,《恋舞OL》更新维护公告
  13. “企业级零代码黑客马拉松大赛”决赛名单公布
  14. 使用scrapy爬取豆瓣上面《战狼2》影评
  15. 微软各产品的生命周期
  16. jacob实现ppt转图片时存在的问题
  17. LintCode 1144.范围加法之二
  18. Nginx源码分析之ngx_hash_t
  19. switch里面,一开头就放default是什么意思
  20. 分享113个HTML艺术时尚模板,总有一款适合您

热门文章

  1. 程序员的爱情最纯洁?
  2. 工作第九周:勇敢的少年,快去创造奇迹!
  3. 2019第八届中国财经峰会在京闭幕
  4. 王者荣耀游戏高清壁纸(手机|电脑),来袭
  5. 突然有感而发,发一个自己杜撰的小寓言
  6. ps裁剪和裁切的区别_PS图片的裁剪和裁切的含义和应用
  7. 发现一款 xcel 数据筛选工具,开源项目,可以继续自己发挥
  8. xcel Home 数据透视表初级班(10118班)小结第二课时
  9. 自动感应手部消毒机详细制作方案
  10. 备案服务器查询网站,网站服务器备案查询