linux 基础(8)例行任务
2023-02-12 20:56
405
0
我们的 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'
系统的设置除了时间和指令外,还多了一个用户(代表由哪个用户身份执行)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步