crontab

contrab命令格式

crontab -e (修改crontab任务),crontab -l(获取计划任务列表)(以下图片来源网络)

crontab-2.png

常见缩写

@hourly /path/to/ntpdate

PjDf6UMXHrpyoflA.png

用户控制

设置允许或禁止运行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会加一些控制参数。命令语法

PP8QnIlJR2ttQj0V.png

允许执行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,目前仅仅包括时间),格式如下

UqTe5JzNNXPAU1Sk.png

解释如下

KoOhhfeYu5g82hgU.png

例子

@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://www.dummies.com/computers/operating-systems/linux/how-to-schedule-jobs-in-linux-at-and-crontab-commands/

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

https://unix.stackexchange.com/questions/7053/how-can-get-a-list-of-all-scheduled-cron-jobs-on-my-machine

http://cn.linux.vbird.org/linux_basic/0430cron.php

https://linoxide.com/linux-how-to/schedule-job-linux-commands/


tolive
1 声望0 粉丝