Run-parts vs. user crontab execution

From Brandonhutchinson.com

(Difference between revisions)
Jump to: navigation, search
(New page: One caveat when running programs via '''run-parts''' (e.g., ''/etc/cron.hourly, /etc/cron.daily, etc.) vs. user crontabs is the '''HOME''' environment variable. By default, '''HOME''' is ...)
Line 1: Line 1:
-
One caveat when running programs via '''run-parts''' (e.g., ''/etc/cron.hourly, /etc/cron.daily, etc.) vs. user crontabs is the '''HOME''' environment variable.
+
One caveat when running programs via '''run-parts''' (e.g., ''/etc/cron.hourly'', ''/etc/cron.daily'', etc.) vs. user crontabs is the '''HOME''' environment variable.
-
By default, '''HOME''' is set to '''/''' in ''/etc/crontab''.
+
* By default, '''HOME''' is set to '''/''' in ''/etc/crontab'', so all scripts executed via '''run-parts''' have a '''HOME''' of '''/'''.
-
Without a '''HOME''' line in user crontabs, '''HOME''' is the home directory in ''/etc/passwd'' of the crontab owner.
+
 
 +
* By default, '''HOME''' is the home directory in ''/etc/passwd'' of the crontab owner. This can be overridden by a '''HOME''' line in the user crontab.
This caused me problems when I tried to execute a MySQL backup script via '''run-parts''' that depended on ''~/.my.cnf'' in the user's home directory. As a workaround, I modified the script to set the HOME environment variable rather than make a global change in ''/etc/crontab'' for all '''run-parts''' scripts.
This caused me problems when I tried to execute a MySQL backup script via '''run-parts''' that depended on ''~/.my.cnf'' in the user's home directory. As a workaround, I modified the script to set the HOME environment variable rather than make a global change in ''/etc/crontab'' for all '''run-parts''' scripts.

Revision as of 16:44, 30 April 2008

One caveat when running programs via run-parts (e.g., /etc/cron.hourly, /etc/cron.daily, etc.) vs. user crontabs is the HOME environment variable.

  • By default, HOME is set to / in /etc/crontab, so all scripts executed via run-parts have a HOME of /.
  • By default, HOME is the home directory in /etc/passwd of the crontab owner. This can be overridden by a HOME line in the user crontab.

This caused me problems when I tried to execute a MySQL backup script via run-parts that depended on ~/.my.cnf in the user's home directory. As a workaround, I modified the script to set the HOME environment variable rather than make a global change in /etc/crontab for all run-parts scripts.

Personal tools