crontab
contrab命令格式
crontab -e (修改crontab任务),crontab -l(获取计划任务列表)(以下图片来源网络)
常见缩写
@hourly /path/to/ntpdate
用户控制
设置允许或禁止运行crontab的用户
/etc/cron.allow
/etc/cron.allow
任务数据
系统级别的cron任务位于/etc/crontab文件,典型配置
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
/etc/cron.hourly,/etc/cron.daily,/etc/cron.weekly,/etc/cron.monthly目录下的文件会会分别以小时、天、周、月定期运行。必须具有执行权限,需指定相应环境。如bash 以#!/bin/bash开头,python以#!/usr/bin/pyton(#!/usr/bin/env python)开头
查看相应目录下的计划任务
run-parts --test /etc/cron.hourly
run-parts会执行目录下所有可执行文件(默认参数情况下文件名必须无后缀)
/etc/crontab文件
SHELL未定义时使用sh;PATH未定义时,必须使用绝对路径;HOME未定义时,cron会使用调用者的home目录
/etc/cron.d目录
存放任何要执行的crontab文件或脚本,文件的内容任然是一条条的计划任务(格式同crontab)
crontab状态
service crond status
/var/spool/cron与/var/cron/tabs
两个目录不一定全有。定义了与用户相关的计划任务,如/var/spool/cron/root,cron启动后每一分钟读一次这个文件,故文件修改后不用重新启动cron服务。
at命令(侧重定时执行)
at对应服务为atd,at有batch等价体,batch会加一些控制参数。命令语法
允许执行at的用户
/etc/at.allow
/etc/at.deny
手动执行
ctrl+d 结束编辑,创建任务后,每个任务有一个id,删除时需指定该id。
$ at now + 1 minutes
at> echo "Hello world" > test.txt
at>
job 4 at Tue Dec 19 11:29:00 2017
执行脚本
at now + 1 minute -f script.sh
at now + 1 minute < script.sh
获取任务列表
atq命令
atq
删除任务列表
atrm命令
atrm 4(id号)
数据目录
/var/spool/at,文件类似/var/spool/at/b000020193ddcb,暂未找到涉及时间的数据(利用方式可考虑,先创建任务,后修改文件内容)
anacron
数据目录
/etc/anacrontab (任务时间设置数据),/var/spool/anacron/*(包括cron.daily,cron.monthly,cron.weekly,目前仅仅包括时间),格式如下
解释如下
例子
@daily 15 rsync.daily /bin/bash /home/steven/script/backuprsync.sh
命令
检查anacrontab文件语法
anacron -T
以前端进程运行
anacron -d
强制执行
anacron -d -f (f指定延迟)
anacron -d -n (忽略延迟,立即执行)
log位置
/var/log/cron
ref
https://linuxconfig.org/how-to-schedule-tasks-using-at-command-on-linux
https://askubuntu.com/questions/7676/function-of-etc-cron-hourly
https://www.cyberciti.biz/cloud-computing/why-is-my-linux-unix-crontab-job-not-working/
https://blog.csdn.net/u012468214/article/details/46633953
https://segmentfault.com/a/1190000013186355
https://www.cnblogs.com/hubavyn/p/4607094.html
http://cn.linux.vbird.org/linux_basic/0430cron.php
https://linoxide.com/linux-how-to/schedule-job-linux-commands/
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。