Changes

Jump to navigation Jump to search
809 bytes added ,  08:50, 12 April 2019
m
Line 1: Line 1:  
Cron files are located at:<br />
 
Cron files are located at:<br />
 
Debian: sudo cat /var/spool/cron/crontabs/*
 
Debian: sudo cat /var/spool/cron/crontabs/*
=== Linux cron tab format===
+
===Linux cron tab format===
 
MIN HOUR DOM MON DOW CMD<br />
 
MIN HOUR DOM MON DOW CMD<br />
    
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! Field !! Description !! Allowed Value
+
!Field!!Description!!Allowed Value
 
|-
 
|-
| MIN || Minute || 0-59
+
|MIN||Minute||0-59
 
|-
 
|-
| HOUR || Hour || 0-23
+
|HOUR||Hour||0-23
 
|-
 
|-
| DOM || Day of Month || 1-31
+
|DOM||Day of Month||1-31
 
|-
 
|-
| MON || Month || 1-12
+
|MON||Month||1-12
 
|-
 
|-
| DOW || Day of the week || 0-6
+
|DOW||Day of the week||0-6
 
|-
 
|-
| CMD || Command || Any command to execute
+
|CMD||Command||Any command to execute
 
|}
 
|}
   −
=== view/edit crontab ===
+
===view/edit crontab===
 
  $ crontab -l → To view crontab
 
  $ crontab -l → To view crontab
 
  $ crontab -e → Edit crontab
 
  $ crontab -e → Edit crontab
 
  $ crontab -u otherusername -e → Edit other user crontab
 
  $ crontab -u otherusername -e → Edit other user crontab
   −
=== Schedule a job every X minutes ===
+
===Schedule a job every X minutes===
 
  */5 * * * * /home/ramesh/backup.sh  # Every 5 minutes
 
  */5 * * * * /home/ramesh/backup.sh  # Every 5 minutes
 
  */10 * * * * /home/ramesh/backup.sh  # Every 10 minutes
 
  */10 * * * * /home/ramesh/backup.sh  # Every 10 minutes
   −
=== Schedule a job for a specific day ===
+
===Schedule a job for a specific day===
 
example: 10th June 08:30 AM.
 
example: 10th June 08:30 AM.
 
  30 08 10 06 * /home/ramesh/full-backup
 
  30 08 10 06 * /home/ramesh/full-backup
 +
 
*30 – 30th Minute
 
*30 – 30th Minute
 
*08 – 08 AM
 
*08 – 08 AM
 
*10 – 10th Day
 
*10 – 10th Day
 
*06 – 6th Month (June)
 
*06 – 6th Month (June)
* * – Every day of the week</pre>
+
*<nowiki>* – Every day of the week</nowiki>
   −
=== Schedule a job twice a day ===
+
===Schedule a job twice a day===
 
  00 11,16 * * * /home/ramesh/bin/incremental-backup
 
  00 11,16 * * * /home/ramesh/bin/incremental-backup
 +
 
*00 – 0th Minute (Top of the hour)
 
*00 – 0th Minute (Top of the hour)
 
*11,16 – 11 AM and 4 PM
 
*11,16 – 11 AM and 4 PM
* * – Every day
+
*<nowiki>* – Every day</nowiki>
* * – Every month
+
*<nowiki>* – Every month</nowiki>
* * – Every day of the week
+
*<nowiki>* – Every day of the week</nowiki>
   −
=== Schedule a job during working hours ===
+
===Schedule a job during working hours===
 
  00 09-18 * * * /home/ramesh/bin/check-db-status
 
  00 09-18 * * * /home/ramesh/bin/check-db-status
 +
 
*00 – 0th Minute (Top of the hour)
 
*00 – 0th Minute (Top of the hour)
 
*09-18 – 9 am, 10 am,11 am, 12 am, 1 pm, 2 pm, 3 pm, 4 pm, 5 pm, 6 pm
 
*09-18 – 9 am, 10 am,11 am, 12 am, 1 pm, 2 pm, 3 pm, 4 pm, 5 pm, 6 pm
* * – Every day
+
*<nowiki>* – Every day</nowiki>
* * – Every month
+
*<nowiki>* – Every month</nowiki>
* * – Every day of the week
+
*<nowiki>* – Every day of the week</nowiki>
   −
=== Schedule a job during working hours excluding Saturday and Sunday ===
+
===Schedule a job during working hours excluding Saturday and Sunday===
 
  00 09-18 * * 1-5 /home/ramesh/bin/check-db-status
 
  00 09-18 * * 1-5 /home/ramesh/bin/check-db-status
 +
 
*00 – 0th Minute (Top of the hour)
 
*00 – 0th Minute (Top of the hour)
 
*09-18 – 9 am, 10 am,11 am, 12 am, 1 pm, 2 pm, 3 pm, 4 pm, 5 pm, 6 pm
 
*09-18 – 9 am, 10 am,11 am, 12 am, 1 pm, 2 pm, 3 pm, 4 pm, 5 pm, 6 pm
* * – Every day
+
*<nowiki>* – Every day</nowiki>
* * – Every month
+
*<nowiki>* – Every month</nowiki>
 
*1-5 -Mon, Tue, Wed, Thu and Fri (Every Weekday)
 
*1-5 -Mon, Tue, Wed, Thu and Fri (Every Weekday)
   −
=== Cron jobs special codes ===
+
===Cron jobs special codes===
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! Keword !! Equivalent
+
!Keword!!Equivalent
 
|-
 
|-
| @yearly || 0 0 1 1 *
+
|@yearly||0 0 1 1 *
 
|-
 
|-
| @daily || 0 0 * * *
+
|@daily||0 0 * * *
 
|-
 
|-
| @hourly || 0 * * * *
+
|@hourly||0 * * * *
 
|-
 
|-
| @reboot || Run at startup.
+
|@reboot||Run at startup.
 
|}
 
|}
 
  @yearly /home/ramesh/red-hat/bin/annual-maintenance
 
  @yearly /home/ramesh/red-hat/bin/annual-maintenance
Line 81: Line 85:  
  @reboot CMD
 
  @reboot CMD
   −
=== Adding paths to cron jobs ===
+
===Adding paths to cron jobs===
 
Add the following line to crontab to specify the location of the scriptss (/home/user/scripts) <br />
 
Add the following line to crontab to specify the location of the scriptss (/home/user/scripts) <br />
 
This will allow to avoid having to type the full path to the script
 
This will allow to avoid having to type the full path to the script
 
  PATH=/bin:/sbin:/usr/bin:/usr/sbin:/home/user/scripts
 
  PATH=/bin:/sbin:/usr/bin:/usr/sbin:/home/user/scripts
   −
=== Enable logging to /var/log/cron.log ===
+
===Enable logging to /var/log/cron.log===
 
Add to /etc/rsyslog.d/50-default.conf the line:
 
Add to /etc/rsyslog.d/50-default.conf the line:
 
  cron.*                        /var/log/cron.log
 
  cron.*                        /var/log/cron.log
Line 93: Line 97:  
  sudo systemctl restart rsyslog
 
  sudo systemctl restart rsyslog
 
  sudo systemctl restart cron
 
  sudo systemctl restart cron
 +
 +
== Examples ==
 +
 +
=== WF0006D3 ===
 +
<syntaxhighlight lang="bash">
 +
0 9-17 * * * if [ -d "/media/rafa/GIT/" ]; then /home/rafa/.virtualenvs/git_mirror/bin/python /home/rafa/PycharmProjects/git_mirror/mirror.py work;else echo "$(date) GIT not connected" >> /home/rafa/PycharmProjects/git_mirror/logs/errors.log;fi && /home/rafa/PycharmProjects/Misc/docker_mirror/mirror.sh;fi
 +
0 9-17 * * * if [ -d "/media/rafa/GIT/" ]; then rsync -avp /home/rafa/Downloads/Backups/ /media/rafa/GIT/Wikis/;fi
 +
30 23 * * * scp wiki-tc11.s01.rra.lan:/tmp/wikibackup-$(date +"%Y-%m-%d").tar.gz /home/rafa/Downloads/Backups/attack_wiki/
 +
30 23 * * * scp wiki.rra.lan:/tmp/wikibackup-$(date +"%Y-%m-%d").tar.gz /home/rafa/Downloads/Backups/wiki/
 +
 +
</syntaxhighlight>

Navigation menu