Correct way to edit cron jobs?

thomas-hn

Member
Oct 26, 2021
37
9
13
43
Hi,

what is the correct way to edit cron jobs on the Proxmox host?
In the file "/etc/crontab" I can see some default content:
Code:
root@pve:~# cat /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 )

But if I execute "crontab -e" there is only:
Code:
# 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

So what is the correct way to add own cron jobs?
And do I need to restart cron at the end? For example, via:
Bash:
/etc/init.d/cron restart

Thanks a lot in advance,

Thomas
 
Last edited:
I'd go with crontab -e. You don't need to restart cron afterwards [0].

Thanks for your clarification.
However, what I still don't understand is, why I see some jobs in "/etc/crontab" which are not shown when running "crontab -e".
 
However, what I still don't understand is, why I see some jobs in "/etc/crontab" which are not shown when running "crontab -e".


/etc/crontab is the system-wide crontab, whereas crontab -e alters the crontab of the user currently running the command. They will be stored in /var/spool/cron/crontabs/<username>.

One benefit of using crontab -e to edit is that the command will validate the syntax of the file before it is saved.
 
  • Like
Reactions: MALOW

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!