Crontab command
crontab is the command used to install, deinstall or list the tables (cron configuration file) used to drive the cron(8) daemon in Vixie Cron. Each user can have their own crontab file, and though these are files in /var/spool/cron/crontabs, they are not intended to be edited directly. You need to use crontab command for editing or setting up your own cron jobs.
Types of cron configuration files
There are different types of configuration files:
- The UNIX / Linux system crontab : Usually, used by system services and critical jobs that requires root like privileges. The sixth field (see below for field description) is the name of a user for the command to run as. This gives the system crontab the ability to run commands as any user.
- The user crontabs: User can install their own cron jobs using the crontab command. The sixth field is the command to run, and all commands run as the user who created the crontab
How Do I install or create or edit my own cron jobs?
To edit your crontab file, type the following command at the UNIX / Linux shell prompt:
$ crontab -e
Syntax of crontab (field description)
The syntax is:
1 2 3 4 5 /path/to/command arg1 arg2 or 1 2 3 4 5 /root/backup.sh
Where,
- 1: Minute (0-59)
- 2: Hours (0-23)
- 3: Day (0-31)
- 4: Month (0-12 [12 == December])
- 5: Day of the week(0-7 [7 or 0 == sunday])
- /path/to/command - Script or command name to schedule
- Easy to remember format:
* * * * * command to be executed - - - - - | | | | | | | | | ----- Day of week (0 - 7) (Sunday=0 or 7) | | | ------- Month (1 - 12) | | --------- Day of month (1 - 31) | ----------- Hour (0 - 23) ------------- Minute (0 - 59)
Example: Run backup cron job script
f you wished to have a script named /root/backup.sh run every day at 3am, your crontab entry would look like as follows. First, install your cronjob by running the following command:
crontab -e
Append the following entry:
0 3 * * * /root/backup.sh
Save and close the file.
More examples
To run /path/to/command five minutes after midnight, every day, enter:
5 0 * * * /path/to/command
Run /path/to/script.sh at 2:15pm on the first of every month, enter:
15 14 1 * * /path/to/script.sh
Run /scripts/phpscript.php at 10 pm on weekdays, enter:
0 22 * * 1-5 /scripts/phpscript.php
Run /root/scripts/perl/perlscript.pl at 23 minutes after midnight, 2am, 4am ..., everyday, enter:
23 0-23/2 * * * /root/scripts/perl/perlscript.pl
How do I use operators?
An operator allows you to specifying multiple values in a field. There are three operators:
- The asterisk (*) : This operator specifies all possible values for a field. For example, an asterisk in the hour time field would be equivalent to every hour or an asterisk in the month field would be equivalent to every month.
- The comma (,) : This operator specifies a list of values, for example: "1,5,10,15,20, 25".
- The dash (-) : This operator specifies a range of values, for example: "5-15" days , which is equivalent to typing "5,6,7,8,9,....,13,14,15" using the comma operator.
- The separator (/) : This operator specifies a step value, for example: "0-23/" can be used in the hours field to specify command execution every other hour. Steps are also permitted after an asterisk, so if you want to say every two hours, just use */2.
How do I disable email output?
By default the output of a command or a script (if any produced), will be email to your local email account. To stop receiving email output from crontab you need to append >/dev/null 2>&1. For example:
0 3 * * * /root/backup.sh >/dev/null 2>&1
To mail output to particular email account let us say vivek@nixcraft.in you need to define MAILTO variable as follows:
MAILTO="vivek@nixcraft.in" 0 3 * * * /root/backup.sh >/dev/null 2>&1
Task: List all your cron jobs
Type the following command:
crontab -l crontab -u username -l
To remove or erase all crontab jobs use the following command:
# Delete the current cron jobs # crontab -r
## Delete job for specific user. Must be run as root user ## crontab -r -u username
Use special string to save time
Instead of the first five fields, you can use any one of eight special strings. It will not just save your time but it will improve readability.
Special string | Meaning |
@reboot | Run once, at startup. |
@yearly | Run once a year, "0 0 1 1 *". |
@annually | (same as @yearly) |
@monthly | Run once a month, "0 0 1 * *". |
@weekly | Run once a week, "0 0 * * 0". |
@daily | Run once a day, "0 0 * * *". |
@midnight | (same as @daily) |
@hourly | Run once an hour, "0 * * * *". |
Examples
Run ntpdate command every hour:
@hourly /path/to/ntpdate
Make a backup everyday:
@daily /path/to/backup/script.sh
More about /etc/crontab file and /etc/cron.d/* directories
/etc/crontab is system crontabs file. Usually only used by root user or daemons to configure system wide jobs. All individual user must must use crontab command to install and edit their jobs as described above. /var/spool/cron/ or /var/cron/tabs/ is directory for personal user crontab files. It must be backup with users home directory.
Understanding Default /etc/crontab
Typical /etc/crontab file entries:
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
First, the environment must be defined. If the shell line is omitted, cron will use the default, which is sh. If the PATH variable is omitted, no default will be used and file locations will need to be absolute. If HOME is omitted, cron will use the invoking users home directory.
Additionally, cron reads the files in /etc/cron.d/ directory. Usually system daemon such as sa-update or sysstat places their cronjob here. As a root user or superuser you can use following directories to configure cron jobs. You can directly drop your scripts here. The run-parts command run scripts or programs in a directory via /etc/crontab file:
Directory | Description |
/etc/cron.d/ | Put all scripts here and call them from /etc/crontab file. |
/etc/cron.daily/ | Run all scripts once a day |
/etc/cron.hourly/ | Run all scripts once an hour |
/etc/cron.monthly/ | Run all scripts once a month |
/etc/cron.weekly/ | Run all scripts once a week |
How do I use above directories to put my own scripts or jobs?
Here is a sample shell script called clean.cache. This script is created to clean up cached files every 10 days. This script is directly created at /etc/cron.daliy/ directory. In other words create a text file called /etc/cron.daily/clean.cache as follows.
#!/bin/bash # A sample shell script to clean cached file from lighttpd web server CROOT="/tmp/cachelighttpd/" # Clean files every $DAYS DAYS=10 # Web server username and group name LUSER="lighttpd" LGROUP="lighttpd" # Okay, let us start cleaning as per $DAYS /usr/bin/find ${CROOT} -type f -mtime +${DAYS} | xargs -r /bin/rm # Failsafe # if directory deleted by some other script just get it back if [ ! -d $CROOT ] then /bin/mkdir -p $CROOT /bin/chown ${LUSER}:${LGROUP} ${CROOT} fi
Save and close the file. Set the permissions:
chmod +x /etc/cron.daily/clean.cache
How do I backup installed cron jobs entries?
Simply type the following command to backup your cronjobs to a nas server mounted at /nas01/backup/cron/users.root.bakup directory:
# crontab -l > /nas01/backup/cron/users.root.bakup # crontab -u userName -l > /nas01/backup/cron/users.userName.bakup
http://www.cyberciti.biz/faq/how-do-i-add-jobs-to-cron-under-linux-or-unix-oses/
相关推荐
How to schedule and automate jobs using cron. How to switch users and run processes as others. Where to go for even more in-depth coverage on each topic. What you learn in "Linux for Beginners" ...
Erlang Cron的实现支持所有标准cron字段(分钟,小时,每月的某天,每月,一周的某天)和符号:*,-/ 在Erlang / OTP 18,Erlang / OTP 19,Erlang / OTP 20上测试; 钢筋/钢筋3。编译$ rebar compileEUnit测试$ ...
Lambdacd-Cron cron触发器。 地位 用法 在project.clj中添加 :dependencies [[lambdacd-cron " <most> " ]] 将以下代码添加到管道代码的import语句中 ( :require [lambdacd-cron.core :as lambdacd-cron]) 以下...
Cron控制 贡献者:自动的,狂热的标签: cron,cron控制,并发,并行,异步至少需要: 4.4 经过测试: 5.0 需要PHP: 7.0 稳定标签: 2.0 许可证: GPLv2或更高版本许可URI: : 并行执行WordPress cron事件,并...
cron4s:Scala的跨平台CRON表达式解析
howto:我制作的各种HowTo文档的垃圾场
3.1 cron和crontab 22 3.1.1 crontab的域 22 3.1.2 crontab条目举例 23 3.1.3 crontab命令选项 23 3.1.4 创建一个新的crontab文件 24 3.1.5 列出crontab文件 24 3.1.6 编辑crontab文件 24 3.1.7 删除crontab文件 25 ...
WinForm Cron表达式生成器 Quartz.Net Cron表达式生成器winform版 最近使用Quartz.net做了几个同步任务,感觉非常好。表达式设置也是非常灵活,但是新入手发现对表达式不熟,每次都要使用在线生成器。 于是写...
Cron服务 cron是Linux系统下一个自动执行指定任务的程序. cron服务要通过命令启动和停止,在Linux上可以通过/etc/init.d/crond脚本启动或停止. cron的配置方式 编辑/var/spool/cron目录下文件 /var/spool/cron目录下...
pcron / pcrontab与cron / crontab相似,后者是Linux / Unix的标准执行/计划工具。 pcron / pcrontab是为不允许常规使用cron的系统创建的。 任何人都可以使用pcron / pcrontab。 pcrontab pcrontab是用于定义作业...
linux 计划任务cron--教你怎么定时执行的指令
http://你的网站/cron/zan.cron.php?cron=识别码&n=1 http://你的网站/cron/zan.cron.php?cron=识别码&n=2 http://你的网站/cron/zan.cron.php?cron=识别码&n=3 http://你的网站/cron/zan.cron.php?cron=识别码&n=4 ...
Quartz中的cron-like表达式解析 cron-like unix-like c#
Linux定时任务系统Cron入门,详细介绍LINUX的crontab和设置。
vue-cron这是一个cron表达式生成插件,基于vue与element-ui实现依赖Vue 2.0.0+element-ui 2.0.0+安装方式npm install vue-cron引入方式//前置配置import Vue from 'vue'import ElementUI from 'element-ui';...
对linux / unix cronjob语法的支持有限。 安装方式: 将文件夹复制到Web服务器上。 确保在logs文件夹上设置写权限。 如果您PHP二进制文件不在/ usr / bin /下,请在runner.php中设置PHP路径。 在您经常执行的...
Cron是Linux下非常实用的一个功能,而Windows下如果使用计划任务来实现Cron类似功能,在配置上则麻烦许多。 早前笔者在网上发现Pycron这款小程序,可以作为Windows的服务运行,并且支持自定义Cron配置文件路径,...
Usage of go-cron: -cpu=4: maximum number of CPUs -file="crontab": crontab file path $ docker run go-cron -file=crontab 2015/06/18 07:53:38 Add cron job spec:*/1 * * * * cmd:echo "hello world!" err...
SKEDULORD: helps with cronjobs and logs.Options: --help Show this message and exit.Commands: schedule Set (or reset) cron jobs based on config. run Run a single command, which is logged
将可执行脚本添加到适当的cron目录(例如/etc/cron.daily )并启用systemd-cron: # systemctl daemon-reload # systemctl enable cron.target # systemctl start cron.target 该项目还包括等效的简单crontab命令,...