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