Brainfarts Uncategorized Add Cronjob to VMware

Add Cronjob to VMware

This post was most recently updated on December 11th, 2018

Add cron Job to VMware ESX/ESXi

 

This explains how to add a cron job to VMware in such a way that it will still be there after reboots.

 

Having enabled ssh access to your ESX/ESXi server, ssh in as root.

 

Firstly, add the cron job to the root crontab:

  1. Edit /var/spool/cron/crontabs/root
  2. Add the line (all on one line) 5 0 * * * /full/path/to/script arguments/with/full/path > /full/path/to/logfile 2>&1
  3. Run the command “cat /var/run/crond.pid” That will print the process number of the running crond, such as 12345
  4. Run the command “kill 12345” where “12345” should be replaced with the number output by the previous command

 

For details of the meaning of “5 0 * * *” (5 minutes past midnight every day) read the man page for crontab(5) on any Unix/Linux server, or else on the web.

 

Now, add a command to /etc/rc.local to re-generate the cron job when ESX/ESXi reboots

  1. Edit /etc/rc.local, using a command such as “vi /etc/rc.local”.
  2. At the end of the file, add 3 lines (using “G” then “O” in vi). The first kills crond, the second adds the new cron job to the root crontab file, ad the third restarts crond:
    • /bin/kill $(cat /var/run/crond.pid)
    • /bin/echo ‘5 0 * * * /full/path/to/script arguments/with/full/path > /full/path/to/logfile 2>&1’ >> /var/spool/cron/crontabs/root
    • /bin/busybox crond
  3. Save and exit the editor (Press the “Esc” key then “:wq” then press “Return” in vi)
  4. Run the command “auto-backup.sh” so that the change to /etc/rc.local survives a reboot.

 

Every time you change the cron job, remember to update /etc/rc.local as well and run the “auto-backup.sh” command to backup the new /etc/rc.local file.

 

Related Post