Crontab: Difference between revisions
No edit summary |
No edit summary |
||
(7 intermediate revisions by the same user not shown) | |||
Line 2: | Line 2: | ||
= Crontab Commands = | = Crontab Commands = | ||
{|class="wikitable" | |||
!Command | |||
!Description | |||
|- | |||
|crontab -e | |||
|Edit your crontab file, or create one if it doesn't already exist. | |||
|- | |||
|crontab -l | |||
|List your crontab file. | |||
|- | |||
|crontab -r | |||
|Remove your crontab file. | |||
|- | |||
|crontab -v | |||
|Display the last time you edited your crontab file | |||
|} | |||
= Crontab File = | = Crontab File = | ||
Line 44: | Line 33: | ||
</pre> | </pre> | ||
= | = Example = | ||
== of Specific Minutes == | == of Specific Minutes == | ||
<pre> | <pre> | ||
3,5,10-15,30,55-60 * * * * /command/to/run.sh | 3,5,10-15,30,55-60 * * * * /command/to/run.sh | ||
</pre> | </pre> | ||
== minute offsets == | |||
<pre> | |||
4-59/5 * * * * will run every 5 minutes starting at 4. 4,9,14,19,24,29...... | |||
5-59/20 * * * * will run at 5 minutes after, 25 minutes after, and 45 minutes after. | |||
10-59/25 * * * * will run at 10 minutes after and 35 minutes after. | |||
1-59/2 * * * * will run every odd minute. | |||
</pre> | |||
An * in the minute field is the same as 0-59/1 where 0-59 is the range and 1 is the step. The command will run at the first minute in the range (0), then at all successive minutes that are distant from the first by step (1), until the last (59). | |||
The same could be used within the other feilds. | |||
== of every 4 hours == | == of every 4 hours == | ||
<pre> | <pre> | ||
0 */4 * * * /command/to/run.sh | |||
</pre> | </pre> | ||
== at boot == | == at boot == | ||
<pre> | |||
@reboot /command/to/run.sh | |||
</pre> | |||
= | = Email Notifications = | ||
== Specific == | |||
To send an email to a specific address | |||
<pre> | |||
MAILFROM=no-reply@myemail.com | |||
MAILTO=me@kmyemail.com | |||
</pre> | |||
== Disable == | |||
By default cron jobs sends a email to the user account executing the cronjob. If this is not needed put the following command At the end of the cron job line . | By default cron jobs sends a email to the user account executing the cronjob. If this is not needed put the following command At the end of the cron job line . | ||
<pre> | <pre> | ||
>/dev/null 2>&1 | >/dev/null 2>&1 | ||
</pre> | </pre> | ||
{| | |||
! style="text-align:right;"|> | |||
|is for redirect | |||
|- | |||
! style="text-align:right;"|/dev/null | |||
|is a black hole where any data sent, will be discarded | |||
|- | |||
! style="text-align:right;"|2 | |||
|is the file descriptor for Standard Error | |||
|- | |||
! style="text-align:right;"|& | |||
|is the symbol for file descriptor (without it, the following 1 would be considered a filename) | |||
|- | |||
! style="text-align:right;"|1 | |||
|is the file descriptor for Standard Out | |||
|} | |||
Therefore '''>/dev/null 2>&1''' is redirect the output of your program to /dev/null. Include both the Standard Error and Standard Out. | |||
[[Category : Linux]] | [[Category : Linux]] |
Latest revision as of 20:07, 19 May 2024
Crontab is the equivelant of the scheduler in Windows.
Crontab Commands
Command | Description |
---|---|
crontab -e | Edit your crontab file, or create one if it doesn't already exist. |
crontab -l | List your crontab file. |
crontab -r | Remove your crontab file. |
crontab -v | Display the last time you edited your crontab file |
Crontab File
A crontab file has five fields for specifying day , date and time followed by the command to be run at that interval.
* * * * * command to be executed - - - - - | | | | | | | | | +----- day of week (0 - 6) (Sunday=0) | | | +------- month (1 - 12) | | +--------- day of month (1 - 31) | +----------- hour (0 - 23) +------------- min (0 - 59)
Example
of Specific Minutes
3,5,10-15,30,55-60 * * * * /command/to/run.sh
minute offsets
4-59/5 * * * * will run every 5 minutes starting at 4. 4,9,14,19,24,29...... 5-59/20 * * * * will run at 5 minutes after, 25 minutes after, and 45 minutes after. 10-59/25 * * * * will run at 10 minutes after and 35 minutes after. 1-59/2 * * * * will run every odd minute.
An * in the minute field is the same as 0-59/1 where 0-59 is the range and 1 is the step. The command will run at the first minute in the range (0), then at all successive minutes that are distant from the first by step (1), until the last (59).
The same could be used within the other feilds.
of every 4 hours
0 */4 * * * /command/to/run.sh
at boot
@reboot /command/to/run.sh
Email Notifications
Specific
To send an email to a specific address
MAILFROM=no-reply@myemail.com MAILTO=me@kmyemail.com
Disable
By default cron jobs sends a email to the user account executing the cronjob. If this is not needed put the following command At the end of the cron job line .
>/dev/null 2>&1
> | is for redirect |
---|---|
/dev/null | is a black hole where any data sent, will be discarded |
2 | is the file descriptor for Standard Error |
& | is the symbol for file descriptor (without it, the following 1 would be considered a filename) |
1 | is the file descriptor for Standard Out |
Therefore >/dev/null 2>&1 is redirect the output of your program to /dev/null. Include both the Standard Error and Standard Out.