Linux的例行性工作(计划任务)

这篇具有很好参考价值的文章主要介绍了Linux的例行性工作(计划任务)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、单一执行的例行性任务--at(一 次性)

1、安装

2、启动服务

3、at命令详解

1)格式

2)参数

3)时间格式

4、实例

二、循环执行的例行性任务-- crontab(周期性)

1、crontd服务

2、工作过程

3、crontab命令详解

编辑crontab

书写定时任务的注意事项

系统级别的计划任务

查看账户信息的三种路径

 Linux中单引号、双引号及反引号的区别


一、单一执行的例行性任务--at(一 次性)

1、安装

[root@server ~]# yum install at -y

[root@server ~]# at -V                # 大写V
at version 3.2.2

[root@server ~]# which at             # 查看路径
/usr/bin/at

2、启动服务

[root@server ~]# systemctl start atd
[root@server ~]# systemctl enable --now atd    # 设置开机启动
[root@server ~]# systemctl status atd          # 查看状态

3、at命令详解

1)格式

at -参数 日期时间
  • at命令只要指定的时间正确,就可以执行对应的命令
  • at命令的输出结果不会显示到屏幕上
  • at命令中执行的命令最好使用绝对路径,不容易报错
  • 过程:输入at 时间 -> 回车 ->输入执行的命令->ctrl+d退出at
  • at命令只会执行一次 

at命令执行过程分析

  • 寻找/etc/at.allow (白名单)是否存在,写在该文件中用户才可执行at命令
  • 若/etc/at.allow不存在则寻找/etc/at.deny(黑 名单)文件,写在该文件中的用户不能使用at命令
  • 若两个文件都不存在则只有root用户可以使用at 命令

注意:若拒绝某用户使用at命令则可以将用户名写入 到/etc/at.deny中

2)参数

-m        当任务完成后,即使没有标准输出,也会给用户发送邮件

-l           列出系统上所有用户的at任务,等价于atq

-d          删除或取消一个任务

-v          使用时间格式,列出at任务

-c           可以列出任务之后的命令内容

-f            从文件中读取

3)时间格式

参数                                     说明

HH:MM                                 在今天HH小时的MM分钟执行,若时间 点错过,将在明天执行

HH:MM YYYY-MM-DD         规定在某年某月的某一天的特殊时刻执行 该工作

now +2 minutes                    从现在开始的minutes、hours、days、 weeks执行

4、实例

1)延迟执行ls /root ,并将结果写入到at.txt中

[root@server ~]# at 14:17
warning: commands will be executed using 
/bin/sh

at> ls /root > at.txt
at> <EOT>                  # 点击ctrl+d 结束交互性界面
                           # CTRL+“backspace” 删除字符

[root@server ~]# at -l     # 查看已存在的计划任务
3 Thu May 25 14:17:00 2023 a root
[root@server ~]# atq       # 查看已存在的计划任务
3 Thu May 25 14:17:00 2023 a root

2)不使用交互性命令实现,通过管道符命令执行

[root@server ~]# echo "echo 'hello again'
>> at.txt" | at now +1 minute

3)设置某账户at命令不可用

[root@server ~]# useradd ce1 # 新建账户
[root@server ~]# passwd ce1 # 设置密码 (更改用户 ce1 的密码)

[root@server ~]# tail -1 /etc/passwd # 倒叙查看账户管理文件
ce1:x:1001:1001::/home/ce1:/bin/bash
[root@server ~]# vim /etc/at.deny # 设置黑名单(输入ce1)

[root@server ~]# su ce1 # 切换账户
[ce1@server ~]$ at 14:36 # 测试,at命令不可用
You do not have permission to use at.
[ce1@server ~]$ su root # 切换到root账户
密码:
su: 拒绝权限
# 安全考虑,openEuler做了用户权限切换限制,解决方法如下:
# 重新开启一个ssh连接,以root账户登录
#PAM(Pluggable Authentication Modules)负责系统中很多应用程序的登录认证,安全设置问题

[root@server ~]# vim /etc/pam.d/su     # 注释掉auth required pam_wheel.souse_uid 

Linux的例行性工作(计划任务),RHCE,linux,服务器,运维,openeuler

二、循环执行的例行性任务-- crontab(周期性)

1、crontd服务

at 命令是在指定的时间只能执行一次任务

crontab 命令可以循环重复的执行定时任务

安装:

[root@server ~]# yum install crontabs       #安装
[root@server ~]# systemctl status crond     #查看状态

crond 进程每分钟会定期检查是否有要执行的任务,如果有,则会自动执行该任务,crontab 命令需要 crond 服务支持 

2、工作过程

当系统中有 /etc/cron.allow 文件时,只有写入此文件的用户可以使用 crontab 命令,没有写入的用户不能使用 crontab 命令。

同样,如果有此文件,/etc/cron.deny 文件会被忽略,因为/etc/cron.allow 文件的优先级更高

当系统中只有 /etc/cron.deny 文件时,写入此文件的用户不能使用 crontab 命令,没有写入文件的用户可以使用 crontab 命令

crontab 执行的每一项工作都会被记录到 /var/log/cron 这个日志文件中

当用户使用 crontab 新建工作之后,该项工作就会被记 录到 /var/spool/cron/目录里面

3、crontab命令详解

crontab [-u user] [-l| -r | -e]

-u         只有root才能执行该任务

-e         编辑crontab工作内容

-l          查询crontab任务内容

-r          删除cronatb任务

编辑crontab

 [root@server ~]# crontab -e

代表意义         分钟        小时         日期         月份                       星期                            命令

数字范围      0- 59          0- 23        1- 31       1- 12         0-7(0和7表示 周日)         执行的动作

注:日期和星期 二写一 (日期星期有重复 )

*/5 6-8 * 8 1 /bin/bash /test.sh
表示在八月份的每个星期一,六点到八点这个范围内每隔五分钟执行一次存储在/test.sh下的脚本

特殊字符

*                任意时刻

-                表示时间范围

,              分割时刻(逗号)

*/数字        指定时间间隔的频率,如:每3分钟执行一 次,*/3

书写定时任务的注意事项

  • 6 个字段都不能为空,如果不确定则使用*表示任意时间
  • crontab命令任务的最小时间单位为分钟,最大有效时间为月
  • 定义时间时,日期和星期最好不要一起出现
  • 在定时任务中不管是写命令还是在脚本中写命令, 最好都用绝对路径,相对路径有时会报错

系统级别的计划任务

crontab -e 时每个用户都可以执行的命令,但有时定时任 务必须由系统执行,此时就需要编辑/etc/crontab配置文件来实现——在/etc/crontab 最后一行新增计划任务

 [root@server ~]# vim /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed



SHELL=/bin/bash : 指定系统使用那个shell解释器去
执行
PATH=/sbin:/bin:/usr/sbin:/usr/bin : 系统执行命令
的搜索路径
MAILTO=root : 表示执行任务的信息通过邮件发送给
谁
user-name : 表示执行命令的用户

查看账户信息的三种路径

[root@server ~]# cat /etc/passwd     账户查看

[root@server ~]# cat /etc/group     工作组

[root@server ~]# cat /etc/shadow    账号密码

 Linux中单引号、双引号及反引号的区别

1.单引号:

——所见即所得,直接显示单引号里的内容(单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的)。

2.双引号:

——先把变量解析之后,再输出(把双引号内的内容输出出来;如果内容中有命令、变量等,会先把变量、命令解析出结果,然后在输出最终内容来)。

双引号括起来的字符中,"$"、反斜杠(\)和反引号(` `)是拥有特殊含义的:

  • $ 代表引用变量的值;
  • \ 反斜杠是转义字符;
  • `` 反引号代表引用命令

3.反引号:

——用于命令替换,即先执行反引号中的语句,再把结果加入到原命令中。

引用于Linux Shell中单引号、双引号、反引号的解释 - 知乎文章来源地址https://www.toymoban.com/news/detail-822631.html

到了这里,关于Linux的例行性工作(计划任务)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux服务器初始化工作

    以下为一键运行脚本,此脚本在AlmaLinux8,9系统上测试通过,其它版本系统无法保证全部功能正常运行。推荐仅在全新的服务器操作系统上运行此脚本,如二次执行可能会出现未知错误! 通常在购买一台新的服务器时服务器Hostname会被云厂商定义为特定的名称,如果需要修改

    2023年04月22日
    浏览(63)
  • linux服务器ubuntu定时任务cron设置每秒执行

    后端的同学经常会遇到在服务器做一些定时脚本处理,比如定时清理日志,定时请求某个接口做特殊的业务处理,大多数linux版本都会带cron服务,以ubuntu服务器做个示例。 cron 是一个在 Unix-like 操作系统中用于定时执行任务的工具。它是 “Chronos”(希腊语,意为时间)的缩写

    2024年02月02日
    浏览(46)
  • Linux下Web服务器工作模型及Nginx工作原理详解

    在Linux环境下,Web服务器处理并发连接请求的工作模型主要有阻塞、非阻塞、同步、异步等方式。以下是对各种工作模型的浅析: 同步阻塞 I/O: 类比于在餐厅等饭,需要在取餐处等待,期间不能进行其他事情。 同步非阻塞 I/O: 类比于在餐厅等饭,可以进行其他事情,但需

    2024年02月03日
    浏览(31)
  • 【Linux 服务器运维】定时任务 crontab 详解 | 文末送书

    本文思维导图概述的主要内容: 1.1 什么是 crontab Crontab 是一个在 Unix 和 Linux 操作系统上 用于定时执行任务 的工具。它允许用户创建和管理计划任务,以便在特定的时间间隔或时间点自动运行命令或脚本。Crontab 是 cron table 的缩写, cron 指的是 Unix 系统中的一个后台进程,它

    2024年02月08日
    浏览(62)
  • Linux的DHCP工作原理和dns服务器

    目录 一、DHCP原理 1.DHCP的好处 2.DHCP的分配方式 3.实验 二、dns服务器 1.什么是dns 2.dns域名解析 3、在内网搭建dns DCHP工作原理使用C/S架构  (1)第一步,客户端广播发送一个discover报文寻找DHCP服务器。 (2)第二步,DHCP服务器收到discover报文后广播返回一个offer报文,里面包括

    2024年01月17日
    浏览(41)
  • Linux计划任务管理

    任务管理很宽泛,这里是指的计划任务管理,在指定的时间执行。 1,at命令 : 由atd守护进程来执行,atd进程会定期检查系统上的 /var/spool/at 目录,获取at命令写入的任务。 (1)绝对计时 : at 时刻 日期。 (2)相对计时: at now+count time-units。 这个count的单位就是后面的tim

    2024年02月13日
    浏览(33)
  • 16.linux计划任务管理

    什么是计划任务,计划任务类似于我们平时生活中的闹钟。 在 Linux 系统的计划任务服务 crond 可以满足周期性执行任务的需求。 crond 进程每分钟会处理一次计划任务, 计划任务主要是做一些周期性的任务目前最主要的用途是定时备份数据 计划任务分为以下两种情况: 系统级

    2024年02月02日
    浏览(31)
  • Linux计划任务

    计划任务: 固定时间执行固定任务(如闹钟定时报钟) 例如:系统周期性所要执行的备份系统数据、清理缓存等。 计划任务的命令:at命令,crontab命令 at命令                     用于一次性计划任务 crontab命令            用于周期性计划任务 一、at命令 1、at命令

    2024年02月12日
    浏览(52)
  • Linux基础之计划任务

    在Linux的运维中,我们经常会使用到计划任务,所谓计划任务就是在某个时间让计算机做某件事情。我们可以将计划任务分为一次性的调度执行和循环调度执行。 一次性调度执行在实际情况中使用少于循环调度执行。在Linux操作系统中使用 at TIMESPEC 命令即可,这里的TIMESPEC指

    2024年02月13日
    浏览(30)
  • Linux 进程和计划任务管理

    保存在硬盘、光盘等介质中的可执行代码和数据· 文件中静态保存的代码 在CPU及内存中运行的程序代码 动态执行的代码 父、子进程         每个程序可以创建一个或多个进程 load average: 0.00, 0.01, 0.05      系统平均负载  1分钟 5分钟 15分钟 查看 load average 的命令有:top  w

    2024年04月23日
    浏览(26)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包