首页 > 系统相关 >linux 基础(8)例行任务

linux 基础(8)例行任务

时间:2023-02-12 21:12:30浏览次数:45  
标签:atd 12 30 调度 crontab 例行 任务 linux

我们的 linux 系统,有时会自动进行线上更新,会定时升级locate用到的数据库。用户也会“在每天0点备份数据”或者“每天8点分析登录文件”,管理这些例行任务就叫做“工作调度”

atd 服务和 at 工作调度

atd 服务控制仅执行一次的调度。at 命令用来编辑这些任务。首先确认是否打开 atd 服务,没有就打开。

systemctl status atd
● atd.service - Job spooling tools
   Loaded: loaded (/usr/lib/systemd/system/atd.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2023-02-12 09:40:29 CST; 7h ago
 Main PID: 1253 (atd)
   CGroup: /system.slice/atd.service
           └─1253 /usr/sbin/atd -f

systemctl restart atd # 启动服务

at 指令用于增删改查任务列表,这个列表实际上以文本储存在/var/spool/at里。

at [-ldc] 时间
-l: list列出当前工作调度,相当于 atq
-c: 可以列出后面接的该项工作的实际指令内容。
-d: 取消一个在 at 调度中的工作,相当于 atrm

时间上,既可以指定绝对时间(HH:MM),也可以指定基于 now 的相对时间。root 可以设定每个人的任务,其他用户只能设定自己的任务。

at now + 1 minutes
at> echo imhere

atq # 查询
3       Sun Feb 12 17:39:00 2023 a lighthouse

at -c 3 # 查询3号任务的指令
...
# 其中有一行就是我们输入的指令

当预定的时间抵达,at 会打开新 shell 执行指令。

crond 服务和 crontab 工作调度

crond 服务控制仅执行一次的调度。crontab 命令用来编辑这些任务。任务列表纪录到/var/spool/cron/里,而运行记录在/var/log/cron里。

crontab [-ler]
-l: 查询列表
-e: 编辑列表
-r: 清空列表

如果开始编辑,就会进入 vim 编辑工作,可以输入多行任务,每行任务如下:

分钟 小时 日期 月 (星期)指令 # 日月和星期是二选一
30 12 5 5 echo imhere # 5月5日12:30
30 12 5 * echo imhere # 美月5日12:30
30 12,18 5 5 echo imhere # 5月5日12:30和18:30
/30 12 5 5 echo imhere # 5月5日12每三十分钟

除此之外,/etc/crontab里保存的是独立于用户外的系统性调度。无需用crontab,直接用 vim 打开,用相同语法编辑就可以。

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

*/5 * * * * root flock -xn "/var/log/oneav/cron.lock" -c '/opt/threatbook/OneAV/oneav/script/install/oneav_service_monitor.sh'

系统的设置除了时间和指令外,还多了一个用户(代表由哪个用户身份执行)

标签:atd,12,30,调度,crontab,例行,任务,linux
From: https://www.cnblogs.com/ofnoname/p/17114716.html

相关文章

  • linux监控命令netstat
    netstat常用参数说明:-a:列出所有的连接状态,包括tcp/udp/unixsocket等-t:仅列出TCP封包的连接-u:仅列出UDP封包的连接-l:仅列出有在Listen(监听)的服务的网络状态......
  • Linux系统目录
    软件安装:目录作用/usr系统级目录。可理解为C:/Windows/,/usr/lib:可理解为C:/Windows/System32。/usr/local用户级的程序目录。可理解为C:/ProgremFiles/......
  • 红帽系Linux发行版本8版本以上的网络配置管理
    网络管理(nmcli)1、NetworkManager管理在rhel8(含centos8)上,在/etc/sysconfig/network-scripts/里也看不到任何脚本文件,没有传统的network.service。因此只能通过其它方法......
  • 嵌入式Linux—浅析Makefile
    Makefile文档组织管理程序不使用Makefile的缺点-otesta.cb.c执行过程:a.c文件通过预处理、编译、汇编得到a.o文件b.c文件通过预处理、编译、汇编得到b.o文件a.......
  • 嵌入式Linux—Framebuffer应用编程
    Framebuffer应用编程Frame的意思是帧,buffer的意思是缓冲区。Framebuffer就是一块内存(硬件设备),里面保存着一帧图像。ioctl()函数解析ioctl()函数非常强大。不同的驱......
  • linux驱动架构
    linux驱动演化过程:从04年到现在,linux驱动进行了两次大的演变,从基于linux-v2.4的原始架构---到基于linux-v2.6的平台总线---再到现在的基于linux-v3.x的设备树。这个演变过......
  • Linux基础命令-history历史记录
    前言    在工作中,经常会需要多次重复某一个命令,或者需要查看之前执行过什么命令,那么都少不了history这个命令,下面一起来看看吧。一、history命令介绍    hi......
  • Linux基础命令-date设置时间
    前言    服务器上的时间往往要用到这个命令,而date命令能修改的不仅仅是时间,还可以修改时区,同步大厂的时间等。一、date命令的介绍    date命令来自于英文单......
  • Linux文件管理命令(4)-cat查看文件内容
     前言    cat主要是用来查看文件内容的,一般也搭配管道符一起来使用,比如有时候要计算文件有多少行或者要截取里面的内容,都还是很实用的。一、cat命令介绍   ......
  • Linux文件管理命令-head显示文件开头的内容
    前言    head命令在日常比较常用的一个命令,如果只想查看文件的前几行内容,就可以用这个命令,还可以自定义选择要查看多少行,一起来看看这个命令的使用吧。一、head命令......