From 994a064416579453452054e1fee17268bbb74ab2 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Mon, 29 Dec 2014 12:38:28 +0545 Subject: Minimise config updates when checking cron jobs --- etc/inc/services.inc | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) (limited to 'etc') diff --git a/etc/inc/services.inc b/etc/inc/services.inc index f22e646..aaa90bd 100644 --- a/etc/inc/services.inc +++ b/etc/inc/services.inc @@ -2363,6 +2363,7 @@ function install_cron_job($command, $active=false, $minute="0", $hour="*", $mont global $config, $g; $is_installed = false; + $cron_changed = true; if (!is_array($config['cron'])) $config['cron'] = array(); @@ -2391,8 +2392,19 @@ function install_cron_job($command, $active=false, $minute="0", $hour="*", $mont $config['cron']['item'][] = $cron_item; write_config(sprintf(gettext("Installed cron job for %s"), $command)); } else { - $config['cron']['item'][$x] = $cron_item; - write_config(sprintf(gettext("Updated cron job for %s"), $command)); + if (($config['cron']['item'][$x]['minute'] == $cron_item['minute']) && + ($config['cron']['item'][$x]['hour'] == $cron_item['hour']) && + ($config['cron']['item'][$x]['mday'] == $cron_item['mday']) && + ($config['cron']['item'][$x]['month'] == $cron_item['month']) && + ($config['cron']['item'][$x]['wday'] == $cron_item['wday']) && + ($config['cron']['item'][$x]['who'] == $cron_item['who']) && + ($config['cron']['item'][$x]['command'] == $cron_item['command'])) { + $cron_changed = false; + log_error(sprintf(gettext("Checked cron job for %s, no change needed"), $command)); + } else { + $config['cron']['item'][$x] = $cron_item; + write_config(sprintf(gettext("Updated cron job for %s"), $command)); + } } } else { if($is_installed == true) { @@ -2400,7 +2412,9 @@ function install_cron_job($command, $active=false, $minute="0", $hour="*", $mont write_config(sprintf(gettext("Removed cron job for %s"), $command)); } } - configure_cron(); + + if ($cron_changed) + configure_cron(); } ?> -- cgit v1.1