Tag: cron
Linux: edit crontab with nano instead of vi
by Ali on Apr.15, 2015, under Linux
Everyone hates vi… I sure do. If you can’t or don’t want to permanently change your crontab editor use this:
env EDITOR=nano crontab -e
Linux: Crontab notes for different users – run a cron job every time a system reboots
by Ali on Nov.13, 2008, under Linux
Each user has its own crontab in Linux. Root crontab is only available to root and cannot be modified by other users. To edit your non-root crontab:
crontab -e
To list available crontab:
crontab -l
To delete:
crontab -r
Privileged users can access others crontab:
crontab -u
Run cron jobs as a different user:
su - <user> -c <command or script>
Depending on your default editor crontab will either open in vi or nano. Crontab line format should look like:
# m h dom mon dow user command
Under which you will have to specify when your cron job should run:
m: minute of the day, from 0 to 59
h: hour of the day, from 0 to 23
dom: day of month, from 1 to 31
dow: day of week, from 1 to 7
user: user your cron job should run as
command: command or script that should run
Root has access to two crontabs. One is accessible through crontab and the other can be opened in your editor: vi /etc/crontab or nano /etc/crontab. Systemwide cron jobs should be added to /etc/crontab which take precedence over your regular cron.
A sample cron job should look like the following line. Here is a line I have in my crontab to sync time with external time servers:
# m h dom mon dow user command
01 0 * * * root ntpdate us.pool.ntp.org
This cron job will sync time at 12:01 AM every night with pool.ntp.org
Tip: to create a cron job to run every time your system reboots (game servers, etc.) start your line with @reboot:
@reboot /home/user/script
Notice that you don’t need to specify anything but @reboot and path to executable. Regular and privileged users can both use this command.
Other commands:
@reboot = run at boot and reboot only
@yearly = run at midnight Jan 1 (0 0 1 1 *)
@annually = run at midnight Jan 1(0 0 1 1 *)
@monthly = run at midnight on the first day of every month (0 0 1 * *)
@weekly = run at midnight every Sunday (0 0 * * 0)
@daily = run at midnight every day (0 0 * * *)
@midnight = run at midnight (0 0 * * *)
@hourly = run on the first second of every hour (0 * * * *)