Project

General

Profile

Actions

Architecture #4711

closed

Replace complex cron one-liner with one script call

Architecture #4711: Replace complex cron one-liner with one script call

Added by Dennis Cabooter over 11 years ago. Updated about 11 years ago.

Status:
Released
Priority:
N/A
Assignee:
Jonathan CLARKE
Category:
System integration
Target version:
Effort required:
Name check:
Fix check:
Regression:

Description

Please replace this:

$ tail -1 /etc/cron.d/rudder-agent
0,5,10,15,20,25,30,35,40,45,50,55 * * * * root . /etc/profile; if [ -e /opt/rudder/bin/check-rudder-agent ]; then /opt/rudder/bin/check-rudder-agent; else if [ ! -e /opt/rudder/etc/disable-agent -a `ps -efww | grep -E "(cf-execd|cf-agent)" | grep -E "/var/rudder/cfengine-community/bin/(cf-execd|cf-agent)" | grep -v grep | wc -l` -eq 0 ]; then /var/rudder/cfengine-community/bin/cf-agent -f failsafe.cf >/dev/null 2>&1 && /var/rudder/cfengine-community/bin/cf-agent >/dev/null 2>&1; if [ $? != 0 ]; then if [ -f /opt/rudder/etc/rudder-restart-message.txt ]; then cat /opt/rudder/etc/rudder-restart-message.txt; else echo "Rudder agent was unable to restart on $(hostname)."; fi; fi; fi; fi

with something more readable to prevent typos.

Like this:

$ tail -1 /etc/cron.d/rudder-agent
0,5,10,15,20,25,30,35,40,45,50,55 * * * * root /opt/rudder/bin/rudder-cron.sh

$ cat /opt/rudder/bin/rudder-cron.sh
#!/bin/bash
#

# Source profile file
. /etc/profile

# Do checks
if [ -e /opt/rudder/bin/check-rudder-agent ]; then 
  /opt/rudder/bin/check-rudder-agent 
elif [ ! -e /opt/rudder/etc/disable-agent -a `ps -efww | grep -E "(cf-execd|cf-agent)" | grep -E "/var/rudder/cfengine-community/bin/(cf-execd|cf-agent)" | grep -v grep | wc -l` -eq 0 ]; then
  /var/rudder/cfengine-community/bin/cf-agent -f failsafe.cf >/dev/null 2>&1 && /var/rudder/cfengine-community/bin/cf-agent >/dev/null 2>&1

  if [ $? != 0 ]; then 
    if [ -f /opt/rudder/etc/rudder-restart-message.txt ]; then 
      cat /opt/rudder/etc/rudder-restart-message.txt
    else 
      echo "Rudder agent was unable to restart on $(hostname)." 
    fi 
  fi
fi

NOTE: I did not check the script for errors and I'm not sure what it should to. This is only an example. Have fun!


Subtasks 1 (0 open1 closed)

Architecture #5391: Replace complex cron one-liner with one script call (impl)ReleasedBenoît PECCATTEActions

Updated by Vincent MEMBRÉ over 11 years ago Actions #1

  • Category set to System integration
  • Status changed from New to Discussion
  • Assignee set to Jonathan CLARKE

That's a wonderful idea Dennis, and really much more readable.

I dont knwo it which version this should come ... That's a rather big change and I would have done it in next major release (2.11)

Jon what do you think of it?

Updated by Dennis Cabooter over 11 years ago Actions #2

I don't think its a big change. It's really unreadable now and I would implement it in 2.10 and backport it to all versions of Rudder that have this cron. Oneliners shouldn't be this long! Just my 2 cents. :)

Updated by Jonathan CLARKE over 11 years ago Actions #3

  • Tracker changed from Bug to Architecture
  • Subject changed from Replace cron line with script to Replace complex cron one-liner with one script call
  • Status changed from Discussion to 14
  • Target version set to 140

This is already the direction that this cron script is going in. If you read carefully, you will see that the only thing this cron does is check if the script /opt/rudder/bin/check-rudder-agent exists and run it. The "else" part is for backwards compatibility.

This new script (/opt/rudder/bin/check-rudder-agent) was introduced in Rudder 2.6. Since 2.11+ only support upgrades from 2.6+, we can now safely remove this.

I will update the cron script to be released in 2.12.

Updated by Jonathan CLARKE over 11 years ago Actions #4

  • Status changed from 14 to 12

Updated by Jonathan CLARKE over 11 years ago Actions #5

  • Status changed from 12 to Pending release

Updated by Matthieu CERDA about 11 years ago Actions #6

  • Target version changed from 140 to 3.0.0~beta1

Updated by Vincent MEMBRÉ about 11 years ago Actions #7

  • Status changed from Pending release to Released

This bug has been fixed in Rudder 3.0.0~beta1 which was release on 01/12/2014.

Actions

Also available in: PDF Atom