我们的 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'

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

linux 基础(8)例行任务的更多相关文章

  1. Linux基础练习题(二)

    Linux基础练习题(二) 1.复制/etc/skel目录为/home/tuer1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限. [root@www ~]# cp -r ...

  2. 大数据每日干货第四天(linux基础之一目录结构与常用命令)

           为了和qq空间同步,也写的第四天,前面几天明天会发布,本来打算把每天学的东西记录下来,通过朋友给的建议要发的话稍微系统化下,从大数据需要的linux基础,到离线数据分析包括hadoop. ...

  3. Linux课程实践一:Linux基础实践(SSH)

    一.SSH服务 1. 安装SSH (1)查看是否已经安装过ssh服务 rpm -qa |grep ssh (2)进行安装 sudo apt-get install openssh-server Ubu ...

  4. 还是不想改报告,伊阿忆啊哟-Linux基础继续

    hi 虽然今天是最最美好的周六(前不着工作日后不着工作日),但老子还要来改报告,但额就是不想改,你拿我有啥办法啊... 争取完结Linux基础 一.Linux常用命令(三) 4.帮助命令 4.1 帮助 ...

  5. 原来今天是感恩节-Linux基础继续&MySQL和PHP

    hi 原来今天是感恩节.虽然一直没有过这个节日的习惯,但仅仅是听到感恩的消息,都能想到一幅幅画面.愿大家安好! 下午开题会议还是有所收获,悄悄的,就变向那个不喜欢自己的人了. 一.Linux基础(二) ...

  6. 买错的电影票,含着泪也得看-LAMP搭建&Linux基础

    hi 没说过,上周五室友过生请客,在龙湖里吃嗨了喝爽了,回去的路上侃侃而谈.说好的这周一起去看年内最后的大片,火星救援的,谁知道老子眼神不好,买错了电影的时间...把周六的约定提前到了今儿个下午,ma ...

  7. Linux基础3(文件权限)

    文件权限 1.普通权限 (登陆用户对文件或目录的读写执行的权限) 普通权限对管理员用户无效 文件和目录 都有4中类型的用户u 所有者 : 文件.目录的创建者g 所属组 : 文件.目录属于的用户组o 其 ...

  8. Linux课程实践一:Linux基础实践(基础操作)

    一.软件源维护 1. 基本操作 (1)查看源列表 sudo vim /etc/apt/sources.list deb:二进制软件安装包 deb-src:源码包 (2)备份软件源列表 sudo cp ...

  9. 实践一:Linux基础实践

    一.Linux基础实践 1.1 1. 掌握软件源的维护方法,配置系统使用软件源镜像.掌握通过软件源来查找,安装,卸载,更新软件的方法. 这部分内容在许多学长学姐的报告里都有很详细的讲解,我在此就不赘述 ...

  10. Linux基础精华

    Linux基础精华 (继续跟新中...) 常用命令: Linux shell 环境 让你提升命令行效 率的 Bash 快捷键 [完整版] 设置你自己的liux alias Linux的Find使用 L ...

随机推荐

  1. CPU利用率为多少时可以兼顾计算效率和时间效率?—— 75% —— 科学计算时如何正确的使用超线程CPU——使用超线程CPU进行计算密集型任务时的注意事项

    2023年12月28日  更新 现在这个AI火热的时代科学计算任务占比越来越大,但是平时使用时也有一些不为人注意的地方需要知道,本文就讨论一下使用超线程CPU时的注意事项. 超线程CPU就是现在的多线 ...

  2. pip install ale_python_interface 安装报错,ModuleNotFoundError: No module named 'ale_python_interface'——fatal error: ale_c_wrapper.h

    参考: https://www.cnblogs.com/hasakei/p/10035198.html https://blog.csdn.net/senjie_wang/article/detail ...

  3. configure: error: Can't find vorbis/vorbisfile.h

    Ubuntu环境: sudo apt-get install libvorbis-dev ==================================

  4. 强化学习:reward function shaping —— 着陆器(lander)游戏中的奖励函数的设计

    lander 游戏是强化学习问题中常使用的一个游戏场景,不同人对该问题都设置了不同的reward function,一直也没有对该游戏的各种reward function的设计做一个记录,正好看视频看 ...

  5. 使用map方法递归替换组数对象内的某一个值

    const TreeDataSource = (arr) => { // 判断是否是数组 if (!arr || !arr.length > 0) { return } // 将值存入ma ...

  6. Java如何防御XSS攻击?

    Q1.什么是XSS攻击? 定义很多,这里我找一个比较详细的解释 https://www.cnblogs.com/csnd/p/11807592.html Q2.为什么会有XSS攻击 也看上面的链接 Q ...

  7. 如何切换git的HEAD分支

    git remote set-head origin some_branch  

  8. 粉丝提问|c语言:如何定义一个和库函数名一样的函数,并在函数中调用该库函数

    问题描述: 某个函数fun_1()是在lib内,没法修改的,在程序中大量的使用了该函数,现在想把原本fun_1失效(现在失效的方法是#define fun_1(..)),用另外一个函数fun_2(), ...

  9. Win32 自绘控件按钮类

    今天学了控件的自绘,初步偿试了下,蹂躏的不行不行的,查了好多的资料,头都弄大了, 有好多还是没弄明白,只是初步实现一个按钮的基本功能,好难呀, 先看下效果: 按下状态 弹起状态 按钮2按下状态 按钮2 ...

  10. Linux/macOS 查看网络接口

    Linux 显示网络设备的状态: $ nmcli device status DEVICE TYPE STATE CONNECTION enp0s5 ethernet connected Wired ...