Personal tools

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

From PhotoVoltaic Logger new generation

Jump to: navigation, search
(Created page with "Category:ScriptsCategory:HowTo If you run the scripts by cron, the most often frequency is once per minute. PVLng offers a wrapper script <tt>PVLng-run.sh</tt> to ru...")
 
m
Line 16: Line 16:
 
     -t    Test mode
 
     -t    Test mode
 
     -v    Set verbosity level to info level
 
     -v    Set verbosity level to info level
    -vv  Set verbosity level to debug level
 
 
     -h    Show this help
 
     -h    Show this help
  
Line 29: Line 28:
  
 
Don't forget to divide the real script name and its parameters with the "<tt>--</tt>"
 
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:
 +
 +
#  ~/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.

Revision as of 19:05, 12 July 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 period seconds for 1 minute.
Use in cron with cron period * for each minute.

Usage: PVLng-run.sh [options] -- command parameter1 parameter2 ...

Options:
    -p    Period in seconds, default: 60 (run once)
    -t    Test mode
    -v    Set verbosity level to info level
    -h    Show this help

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

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

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.