CRONTAB Linux
-
change crontab entrys:
crontab -e
running as a specific user:
Only /etc/crontab and the files in /etc/cron.d/ have a username field. In that file you can do this:
1 1 * * * username /path/to/your/script.sh
From root's crontab sudo crontab -e you can use:
1 1 * * * su username -c "/path/to/your/script.sh"
Or you can use the user's actual crontab like this:
sudo crontab -u username -e
-
Anther option is to us the @reboot argument to perform an action after the reboot happened and place a sleep interval to make sure everything is really up.
@reboot sleep 10; sh /usr/local/scripts/pull_script.sh
-
-
"/etc/crontab" is for systemwide cronjob, where you need to specify a user for the job.
updates for example can override these.
It is recommended to use "crontab -e" to edit and create cronjobs. crontab -e will edit the cronjobs of the user who executes this command.
A User field is no longer required with "crontab -e".Examples:
/etc/crontab:# /etc/crontab: system-wide crontab # Unlike any other crontab you don't have to run the `crontab' # command to install the new version when you edit this file # and files in /etc/cron.d. These files also have username fields, # that none of the other crontabs do. SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # Example of job definition: # .---------------- minute (0 - 59) # | .------------- hour (0 - 23) # | | .---------- day of month (1 - 31) # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * user-name command to be executed 17 * * * * root cd / && run-parts --report /etc/cron.hourly 25 6 * * * root test -x /usr/sbin/anacron || { cd / && run-parts --report /etc/cron.daily; } 47 6 * * 7 root test -x /usr/sbin/anacron || { cd / && run-parts --report /etc/cron.weekly; } 52 6 1 * * root test -x /usr/sbin/anacron || { cd / && run-parts --report /etc/cron.monthly; }
crontab -e:
# Edit this file to introduce tasks to be run by cron. # # Each task to run has to be defined through a single line # indicating with different fields when the task will be run # and what command to run for the task # # To define the time you can provide concrete values for # minute (m), hour (h), day of month (dom), month (mon), # and day of week (dow) or use '*' in these fields (for 'any'). # # Notice that tasks will be started based on the cron's system # daemon's notion of time and timezones. # # Output of the crontab jobs (including errors) is sent through # email to the user the crontab file belongs to (unless redirected). # # For example, you can run a backup of all your user accounts # at 5 a.m every week with: # 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/ # # For more information see the manual pages of crontab(5) and cron(8) # # m h dom mon dow command PATH=/usr/bin:/usr/local/bin */5 * * * * /bin/bash /usr/local/bin/scripts/update-route53.sh */5 * * * * /bin/bash /usr/local/bin/scripts/update-securitygroups.sh
-
Some value modifiers:
* = match all possible values (i.e., every hour) , = match multiple values (i.e., 15,45) - = range of values (i.e., 2-4) / = specifies steps (i.e., */4)
-
*crontab -r removes the crontab