command line pipe rrdtool

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Promy
  • Registratie: Oktober 2002
  • Laatst online: 28-09 21:21
Ik wil de output van een commando doorgeven aan rrdtool, maar die lijkt het niet te aanvaarden en hij toont gewoon de usage van rrdtool alsof er geen input was?
Iets meer uitleg:
het commando:
code:
1
mijncommandolijn | rrdtool


de output van het commando is bv:
code:
1
update vito.rrd N:13.500000:34.700001:50.099998:14.300000:18.799999:33.599998:32.500000:9.100000:9.900000:0.000000:0.000000:0.000000


als ik de output schrijf naar een file dan komt bovenstaande er mooi in.
het gewoon manueel pasten van de output na rrdtool lukt wel (zoals hieronder)
code:
1
rrdtool update vito.rrd N:13.500000:34.700001:50.099998:14.300000:18.799999:33.599998:32.500000:9.100000:9.900000:0.000000:0.000000:0.000000


iemand een idee wat ik mis doe? ( rrdtool < bestandmetoutput lukt ook niet?)

Acties:
  • +1 Henk 'm!

  • ik222
  • Registratie: Maart 2007
  • Niet online
Je mist volgens mij een - achter rrdtool. Volgens mij moet het dit zijn:

code:
1
mijncommandolijn | rrdtool -

Acties:
  • 0 Henk 'm!

  • Promy
  • Registratie: Oktober 2002
  • Laatst online: 28-09 21:21
@ik222 super! dat werkt blijbaar inderdaad ;)

Acties:
  • 0 Henk 'm!

  • Promy
  • Registratie: Oktober 2002
  • Laatst online: 28-09 21:21
Nog een kleine bijkomende vraag: ik heb nu in de cron volgende staat

code:
1
*/2 * * * * root vclient -h 127.0.0.1:3002 -t /var/www/rrd/rrdupdateJS.tmpl -c getTempBuiten, getTempVoorraad, getTempWarmWater, getTempPrimairVoorloop, getTempPrimairTerugloop, getTempsecundairVoorloop, getTempsecundairterugloop, getDrukVerdamper, getDrukCondensor, getStatusPrimair, getStatusSecundair, getStatusVerwWW 2>/dev/null | rrdtool -


Dit werkt perfect, maar... niet tegenstaande er 2>/dev/null staat komt er iedere keer een log in de mail... :?

Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 30-09 22:30

Hero of Time

Moderator LNX

There is only one Legend

In cron zet je scripts geen commando's. Het is IMO heel erg vies en vooral foutgevoelig om je hele commando-barf op een enkele regel te zetten. Doe je 't in een script, dan kan je de boel veel makkelijker uitbreiden om meer te doen.

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • Demo
  • Registratie: Juni 2000
  • Laatst online: 30-09 11:31

Demo

Probleemschietende Tovenaar

Promy schreef op vrijdag 01 april 2016 @ 21:13:
Nog een kleine bijkomende vraag: ik heb nu in de cron volgende staat

code:
1
*/2 * * * * root vclient -h 127.0.0.1:3002 -t /var/www/rrd/rrdupdateJS.tmpl -c getTempBuiten, getTempVoorraad, getTempWarmWater, getTempPrimairVoorloop, getTempPrimairTerugloop, getTempsecundairVoorloop, getTempsecundairterugloop, getDrukVerdamper, getDrukCondensor, getStatusPrimair, getStatusSecundair, getStatusVerwWW 2>/dev/null | rrdtool -


Dit werkt perfect, maar... niet tegenstaande er 2>/dev/null staat komt er iedere keer een log in de mail... :?
Je redirect 2 naar /dev/null, dat is STDERR. Als je commando een 'normale' output geeft, omdat het naar behoren werkt, is dat geen STDERR maar STDOUT. Als je 1>/dev/null redirect, dan krijg je alleen een mail als er een error is. (dat zou ik zelf wel prettig vinden)

Unix doesn't prevent a user from doing stupid things, because that would necessarily prevent them from doing brilliant things.
while true ; do echo -n "bla" ; sleep 1 ; done


Acties:
  • 0 Henk 'm!

  • goarilla
  • Registratie: Oktober 2012
  • Laatst online: 20-08 20:36
Vergeet ook niet dat cronjobs een minimale shell omgeving krijgen. Als je wilt weten hoe minimaal kan je eenmalig iets zoals dit doen:
22 21 * * * set >> /tmp/cron.env
Het is voor die reden dat ik in cronjob scripts meestal LC_ALL, PATH
definieer.
Pagina: 1