Personal tools

Difference between revisions of "Run scripts more than once per minute"

From PhotoVoltaic Logger new generation

Jump to: navigation, search
m
m
Line 6: Line 6:
 
  # ./PVLng-run.sh -h
 
  # ./PVLng-run.sh -h
 
   
 
   
  Run command each period seconds for 1 minute.
+
  Run command each given period (in seconds) for 1 minute.
  Use in cron with cron period * for each minute.
+
  Use in cron with period * for each minute.
 
   
 
   
  Usage: PVLng-run.sh [options] -- command parameter1 parameter2 ...
+
  usage: ./PVLng-run1.sh [options] -- script arg1 arg2 ...
 
   
 
   
  Options:
+
  options:
     -p   Period in seconds, default: 60 (run once)
+
     -p, --period            Run each ? seconds for 1 minute (runs by default once) [default:60]
     -t   Test mode
+
    -n, --nice              Niceness range from -20 (most favorable) to 19 (least favorable) [default:10]
     -v   Set verbosity level to info level
+
     -t, --test              Test mode, set verbosity to info level [flag]
     -h   Show this help
+
     -v, --verbose            Verbosity, use multiple times for higher level [flag]
 +
     -h, --help              This usage help
 +
 +
Don't miss the -- !
 +
 
 +
'''Don't forget to divide the real script name and its parameters with the "<tt>--</tt>"'''
  
 
I monitor my power consumption and my SMA inverters with the following cron tab entries:
 
I monitor my power consumption and my SMA inverters with the following cron tab entries:
Line 25: Line 30:
 
  # Fetch consumption data each 15s  
 
  # Fetch consumption data each 15s  
 
  *      *    *  *  *  ~/PVLng-run.sh -p 15 -- ~/S0/S0.sh -s Consumption.conf
 
  *      *    *  *  *  ~/PVLng-run.sh -p 15 -- ~/S0/S0.sh -s Consumption.conf
 
Don't forget to divide the real script name and its parameters with the "<tt>--</tt>"
 
  
 
If you run the wrapper script in verbose test mode, it will show you only what will happen:
 
If you run the wrapper script in verbose test mode, it will show you only what will happen:

Revision as of 10:46, 27 August 2014

If you run the scripts by cron, the most often frequency is once per minute.

PVLng offers a wrapper script PVLng-run.sh to run a script more than once per minute.

# ./PVLng-run.sh -h

Run command each given period (in seconds) for 1 minute.
Use in cron with period * for each minute.

usage: ./PVLng-run1.sh [options] -- script arg1 arg2 ...

options:
    -p, --period             Run each ? seconds for 1 minute (runs by default once) [default:60]
    -n, --nice               Niceness range from -20 (most favorable) to 19 (least favorable) [default:10]
    -t, --test               Test mode, set verbosity to info level [flag]
    -v, --verbose            Verbosity, use multiple times for higher level [flag]
    -h, --help               This usage help

Don't miss the -- !

Don't forget to divide the real script name and its parameters with the "--"

I monitor my power consumption and my SMA inverters with the following cron tab entries:

# Fetch plant data each 30s, run mostly during daylight times mostly
*    4-22    *   *   *   ~/PVLng-run.sh -p 30 -- ~/SMA/Webbox.sh -s Inverters.conf
*    4-22    *   *   *   ~/PVLng-run.sh -p 30 -- ~/SMA/Webbox.sh -s Sensorbox.conf

# Fetch consumption data each 15s 
*       *    *   *   *   ~/PVLng-run.sh -p 15 -- ~/S0/S0.sh -s Consumption.conf

If you run the wrapper script in verbose test mode, it will show you only what will happen:

#  ~/PVLng-run.sh -tvp 30 -- ~/SMA/Webbox.sh -s Inverters.conf
[19:58:02.550] Period : 30
[19:58:02.554] Command: ~/PVLng-scripts/SMA/Webbox.sh -s Inverters.conf
[19:58:02.559] Run, 1 left ...
[19:58:02.563] Test mode ...
[19:58:32.572] Run, 0 left ...
[19:58:32.576] Test mode ...

For more accuracy the wrapper script will spawn the concrete command into background, so it have not to wait for it.