Crontab: Difference between revisions

From KlavoWiki
Jump to navigationJump to search
No edit summary
No edit summary
 
(7 intermediate revisions by the same user not shown)
Line 2: Line 2:


= Crontab Commands =
= Crontab Commands =
<table cellspacing="0" cellpadding="0">
{|class="wikitable"
<tr>
!Command
<td width="120">&nbsp;</td>
!Description
<td>crontab -e</td>
|-
<td width="20">&nbsp;</td>
|crontab -e
<td>Edit your crontab file, or create one if it doesn&#39;t already exist.</td>
|Edit your crontab file, or create one if it doesn't already exist.
</tr>
|-
<tr>
|crontab -l
<td>&nbsp;</td>
|List your crontab file.
<td>crontab -l</td>
|-
<td>&nbsp;</td>
|crontab -r
<td>Display your crontab file.</td>
|Remove your crontab file.
</tr>
|-
<tr>
|crontab -v
<td>&nbsp;</td>
|Display the last time you edited your crontab file
<td>crontab -r</td>
|}
<td>&nbsp;</td>
<td>Remove your crontab file.</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>crontab -v</td>
<td>&nbsp;</td>
<td>Display the last time you edited your crontab file.</td>
</tr>
</table>
 


= Crontab File =
= Crontab File =
Line 44: Line 33:
</pre>
</pre>


= Exmaple =
= 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>
* */4 * * * /command/to/run.sh
0 */4 * * * /command/to/run.sh
</pre>
</pre>


== at boot ==
== at boot ==
To run a file at boot only enter the command to run with no minute, hour, day, month or day of week paramaters.
<pre>
@reboot /command/to/run.sh
</pre>


= Disable Email Notifications =
= 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.