Ga naar inhoud


Cronjob, datum of tijd meegeven in logfile.


Con

Aanbevolen berichten

Ik heb een cronjob welke mijn meter uitleest.

Te weten * * * * * sleep 30; cu -l /dev/P1/meter -s 9600 --parity=none >> P1.txt &> /dev/null

Dat werkt goed. Maar ik wil de tijd meegeven in die zelfde file.

 

En dat is tot op heden nog niet gelukt, wie het weet mag het zeggen.

 

Groet, Con. Gloeiende, gloeiende, een beetje humor moet kunnen, anders ga je maar ergens anders heen..
Sinds maart 2021 glasvezel via KPN.

Internet/PC: modem/router Fritzbox en TP-Link accesspoint, switch (8), switch (4)

Intel Nuc i7 met W10, Gigabyte Brix met Home Assistant, 17 Shelly's en 2 ESP-tjes.

Link naar reactie
Delen op andere sites


  • Reacties 88
  • Aangemaakt
  • Laatste reactie

Beste reacties in dit topic

Beste reacties in dit topic

  • Moderator

* * * * * sleep 30; cu -l /dev/P1/meter -s 9600 --parity=none >> P1-`date +%H:%M'.txt &> /dev/null

dan wordt het P1-13:15.txt. Is dat wat je bedoelt?

 

Als je het tijdstip in het p1.txt bestand wil zetten zou je het zo kunnen doen denk ik:

 

haalop.sh (chmod a+x doen)

#!/bin/bash
#script om meter uit te lezen + tijdstip invoegen van ophalen
date +%T >> p1.txt
cu -l /dev/P1/meter -s 9600 --parity=none >> p1.txt
* * * * * sleep 30; haalop.sh &> /dev/null

date +%T geeft 16:21:19 als output.

 

VU+ Duo2  met VTi  13 VU+ Uno met VTi  9.0.2

geen Canal Digitaal meer en geen Sparql iptv meer
Triax 78, astra 1,2,3, HB

Link naar reactie
Delen op andere sites

* * * * * sleep 30; cu -l /dev/P1/meter -s 9600 --parity=none >> P1-`date +%H:%M'.txt &> /dev/null

dan wordt het P1-13:15.txt. Is dat wat je bedoelt?

 

Als je het tijdstip in het p1.txt bestand wil zetten zou je het zo kunnen doen denk ik:

 

haalop.sh (chmod a+x doen)

#!/bin/bash
#script om meter uit te lezen + tijdstip invoegen van ophalen
date +%T >> p1.txt
cu -l /dev/P1/meter -s 9600 --parity=none >> p1.txt
* * * * * sleep 30; haalop.sh &> /dev/null

date +%T geeft 16:21:19 als output.

 

 

Nee dat was inderdaad niet de bedoeling. Niet de file de naam geven van de tijd maar de tijd in de file zetten.

 

Ik heb zelf nu het volgende maar ben er nog niet tevreden over (het werkt wel).

* * * * * sleep 25; echo 'tijd' $(date +\%H) $(date + \%M) >> p1.txt
* * * * * sleep 30; cu -l /dev/P1/meter -s 9600 --parity=none >> P1.txt &> /dev/null

En dit verdient imo geen schoonheidsprijs maar het werkt wel zonder een bash-script.

Ik had het liever korter gehad (daar moet ik sowieso nog even met "trial en error" tegenaan)

maar had het nóg liever in één regel gehad. (ik zit een beetje krap in de tijd in mijn cronjob

zoals je kunt zien, er lopen nogal wat taken)

 

Er is progressie;

* * * * * sleep 25; echo 'tijd' $(date +\%H:\%M) >> p1.txt
* * * * * sleep 30; cu -l /dev/P1/meter -s 9600 --parity=none >> P1.txt &> /dev/null
aangepast door Con

Groet, Con. Gloeiende, gloeiende, een beetje humor moet kunnen, anders ga je maar ergens anders heen..
Sinds maart 2021 glasvezel via KPN.

Internet/PC: modem/router Fritzbox en TP-Link accesspoint, switch (8), switch (4)

Intel Nuc i7 met W10, Gigabyte Brix met Home Assistant, 17 Shelly's en 2 ESP-tjes.

Link naar reactie
Delen op andere sites

  • Moderator
 # * * * * *  command to execute # │ │ │ │ │ # │ │ │ │ │ # │ │ │ │ └───── day of week (0 - 6) (0 to 6 are Sunday to Saturday, or use names; 7 is Sunday, the same as 0) # │ │ │ └────────── month (1 - 12) # │ │ └─────────────── day of month (1 - 31) # │ └──────────────────── hour (0 - 23) # └───────────────────────── min (0 - 59)

*/5 * * * * om die task elke 5 minuten uit te voeren?

 

je zou ook nog dit kunnen proberen:

* * * * * sleep 30; date +%T >> P1.txt; cu -l /dev/P1/meter -s 9600 --parity=none >> P1.txt &> /dev/null

die job elke 5 minuten uitvoeren:

*/5 * * * * echo "Tijdstip: " $(date +%T) >> P1.txt; cu -l /dev/P1/meter -s 9600 --parity=none >> p1.txt &> /dev/null

Hmmz, sleep 30 is een halve minuut, doe je echt elke halve minuut die file vullen met data?

VU+ Duo2  met VTi  13 VU+ Uno met VTi  9.0.2

geen Canal Digitaal meer en geen Sparql iptv meer
Triax 78, astra 1,2,3, HB

Link naar reactie
Delen op andere sites

Even een nieuw berichtje er tegen aan.

 

Ik heb nu;

* * * * * sleep 30; cu -l /dev/P1/meter -s 9600 --parity=none >> P1.txt &> /dev/null | echo tijd $(date +\%H:\%M:\%S) >> p1.txt

En dat werkt, het vreemde is dat de tijd éérst wordt neergezet en daarna het telegram, die had ik niet verwacht!


0-0:96.3.10(1)
0-0:96.13.1()
0-0:96.13.0()
Connected.

Disconnected.
tijd 21:11:31
!
/ISk5\2MT382-1004

0-0:96.1.1(5A424556303035313439383933303133)
1-0:1.8.1(03278.744*kWh)
1-0:1.8.2(02196.475*kWh)
1-0:2.8.1(00948.745*kWh)
1-0:2.8.2(02225.670*kWh)
0-0:96.14.0(0002)
1-0:1.7.0(0000.38*kW)
1-0:2.7.0(0000.00*kW)
0-0:17.0.0(0999.00*kW)
0-0:96.3.10(1)
0-0:96.13.1()
0-0:96.13.0()
Connected.

Disconnected.

Het fragment eindigt met een staartje van een telegram en laat vervolgens een compleet telegram zien.

Ik heb uiteraard zelf het een-na-laatste telegram ingekort. En de tijd staat tussen 2 telegrammen, vreemd.

aangepast door Con

Groet, Con. Gloeiende, gloeiende, een beetje humor moet kunnen, anders ga je maar ergens anders heen..
Sinds maart 2021 glasvezel via KPN.

Internet/PC: modem/router Fritzbox en TP-Link accesspoint, switch (8), switch (4)

Intel Nuc i7 met W10, Gigabyte Brix met Home Assistant, 17 Shelly's en 2 ESP-tjes.

Link naar reactie
Delen op andere sites

Kan je misschien ook eens opgeven hoe je het had gewenst?

 

Maakt het iets makkelijker om je te helpen met bijsturen.

 

 

**edit**

(echo "Tijdstip: " $(date +%T) ; cu -l /dev/P1/meter -s 9600 --parity=none) >> p1.txt &> /dev/null

op basis van wiz zijn input.

command grouping tussen ronde haakjes; en samen naar p1.txt tenzij er errors zijn.

 

Con, waarom je met de | werkt in je laatste voorbeeld is me niet helemaal duidelijk.

Je houdt normaal dan enkel de weergave van de tijd over.

aangepast door De_Perre

[Vu+ Solo4K] - [VTi 13.x]

[TVV Basic+] - [CD TopHD]
Ik vind het nieuwe overzicht met ongelezen topics in een tijdslijn maar niks...

Link naar reactie
Delen op andere sites

Kan je misschien ook eens opgeven hoe je het had gewenst?

 

Maakt het iets makkelijker om je te helpen met bijsturen.

Je hebt helemaal gelijk;

!
/ISk5\2MT382-1004

0-0:96.1.1(5A424556303035313439383933303133)
1-0:1.8.1(03278.744*kWh)
1-0:1.8.2(02196.475*kWh)
1-0:2.8.1(00948.745*kWh)
1-0:2.8.2(02225.670*kWh)
0-0:96.14.0(0002)
1-0:1.7.0(0000.38*kW)
1-0:2.7.0(0000.00*kW)
0-0:17.0.0(0999.00*kW)
0-0:96.3.10(1)
0-0:96.13.1()
0-0:96.13.0()
Connected.

Disconnected.
tijd 21:11:31

Dus zoals in de cronjab, chronologisch, eerst de disconnect en daarna de tijd. Zoals ik nu heb afgebeeld.

Groet, Con. Gloeiende, gloeiende, een beetje humor moet kunnen, anders ga je maar ergens anders heen..
Sinds maart 2021 glasvezel via KPN.

Internet/PC: modem/router Fritzbox en TP-Link accesspoint, switch (8), switch (4)

Intel Nuc i7 met W10, Gigabyte Brix met Home Assistant, 17 Shelly's en 2 ESP-tjes.

Link naar reactie
Delen op andere sites

Maak je leven eenvoudiger en maak een shell script aan wat dit allemaal voor je doet. Dan roep je in je cron entry alleen het script aan. Op die manier is het een heel stuk eenvoudiger :) .

“Success is not final, failure is not fatal: it is the courage to continue that counts.” ~ Winston Churchill

Link naar reactie
Delen op andere sites

Het wordt nog ff gekker, maar dat komt omdat ik de materie niet ken

 

Ik heb een cronregel (simplistisch geschreven, maar beide regels op 30 seconden gezet);

* * * * * sleep 30; echo tijd | lees meter | echo tijd
* * * * * sleep 30; echo tijd

En dan zet de cronjob prompt 3 tijden onder-tegen elkaar, ik zou zeggen één

tijd vóór de uitlezing en 2 tijden na de uitlezing.

Dit is nu het resultaat;

0-0:96.13.0()
Connected.


Disconnected.
tijd 22:00:30
tijd 22:00:30
tijd 22:00:30
!
/ISk5\2MT382-1004


0-0:96.1.1(5A424556303035313439383933303133)
1-0:1.8.1(03278.744*kWh)
1-0:1.8.2(02196.731*kWh)
1-0:2.8.1(00948.745*kWh)
1-0:2.8.2(02225.670*kWh)
0-0:96.14.0(0002)
1-0:1.7.0(0000.54*kW)
1-0:2.7.0(0000.00*kW)
0-0:17.0.0(0999.00*kW)
0-0:96.3.10(1)
0-0:96.13.1()
0-0:96.13.0()
Connected.


Disconnected.
aangepast door Con

Groet, Con. Gloeiende, gloeiende, een beetje humor moet kunnen, anders ga je maar ergens anders heen..
Sinds maart 2021 glasvezel via KPN.

Internet/PC: modem/router Fritzbox en TP-Link accesspoint, switch (8), switch (4)

Intel Nuc i7 met W10, Gigabyte Brix met Home Assistant, 17 Shelly's en 2 ESP-tjes.

Link naar reactie
Delen op andere sites

Maak je leven eenvoudiger en maak een shell script aan wat dit allemaal voor je doet. Dan roep je in je cron entry alleen het script aan. Op die manier is het een heel stuk eenvoudiger :) .

Dat zal ik dan eerst moeten leren. Volgens mij wordt met

een shell script het zelfdebedoeld als een bash-script?

Groet, Con. Gloeiende, gloeiende, een beetje humor moet kunnen, anders ga je maar ergens anders heen..
Sinds maart 2021 glasvezel via KPN.

Internet/PC: modem/router Fritzbox en TP-Link accesspoint, switch (8), switch (4)

Intel Nuc i7 met W10, Gigabyte Brix met Home Assistant, 17 Shelly's en 2 ESP-tjes.

Link naar reactie
Delen op andere sites

bash is een shell... Het is de shell die je hoogstwaarschijnlijk in gebruik hebt... :) Type maar eens "sh --version" in je terminal... 

In principe is een script niets anders een lijst met commandos. De eerste regel moet echter wezen "#!/bin/sh", en dan kan je daaronder alle commandos zetten die je wilt.. Als laatste stap het script de "x" (executable vlag) geven, en dan ben je "klaar"....  Lees meer op http://www.tldp.org/pub/Linux/docs/HOWTO/translations/nl/onehtml/Bash-Prog-Intro-HOWTO-NL.html..

“Success is not final, failure is not fatal: it is the courage to continue that counts.” ~ Winston Churchill

Link naar reactie
Delen op andere sites

bash is een shell... Het is de shell die je hoogstwaarschijnlijk in gebruik hebt... :) Type maar eens "sh --version" in je terminal... 

In principe is een script niets anders een lijst met commandos. De eerste regel moet echter wezen "#!/bin/sh", en dan kan je daaronder alle commandos zetten die je wilt.. Als laatste stap het script de "x" (executable vlag) geven, en dan ben je "klaar"....  Lees meer op http://www.tldp.org/pub/Linux/docs/HOWTO/translations/nl/onehtml/Bash-Prog-Intro-HOWTO-NL.html..

Hoewel sh --version de foutmelding gaf "sh: 0: Illegal option --" en gelijkwaardige opdrachten ook

vond ik daarentegen de link erg leerzaam met een redelijke leercurve (ik moet een beetje om mijn

leeftijd denken :) ) Toppie.

aangepast door Con

Groet, Con. Gloeiende, gloeiende, een beetje humor moet kunnen, anders ga je maar ergens anders heen..
Sinds maart 2021 glasvezel via KPN.

Internet/PC: modem/router Fritzbox en TP-Link accesspoint, switch (8), switch (4)

Intel Nuc i7 met W10, Gigabyte Brix met Home Assistant, 17 Shelly's en 2 ESP-tjes.

Link naar reactie
Delen op andere sites

 

Het wordt nog ff gekker, maar dat komt omdat ik de materie niet ken

 

Ik heb een cronregel (simplistisch geschreven, maar beide regels op 30 seconden gezet);

* * * * * sleep 30; echo tijd | lees meter | echo tijd
* * * * * sleep 30; echo tijd

En dan zet de cronjob prompt 3 tijden onder-tegen elkaar, ik zou zeggen één

tijd vóór de uitlezing en 2 tijden na de uitlezing.

Dit is nu het resultaat;

 

 

 

 

mocht je nou de | door een ; vervangen zou hij het wel correct doen geloof ik

 

=> sleep 30; echo tijd ; lees meter ; echo tijd

 

 

of

( cu -l /dev/P1/meter -s 9600 --parity=none; echo "Tijdstip: " $(date +%T) ) >> p1.txt &> /dev/null

 

 

 

**edit 2**

| wordt normaal gebruikt in geval je data wil doorgeven naar het volgende commando

bv :

ls | wc -l
aangepast door De_Perre

[Vu+ Solo4K] - [VTi 13.x]

[TVV Basic+] - [CD TopHD]
Ik vind het nieuwe overzicht met ongelezen topics in een tijdslijn maar niks...

Link naar reactie
Delen op andere sites

Maak een account aan of log in om te reageren

Je moet een lid zijn om een reactie te kunnen achterlaten

Account aanmaken

Registreer voor een nieuwe account in onze community. Het is erg gemakkelijk!

Registreer een nieuwe account

Inloggen

Heb je reeds een account? Log hier in.

Nu inloggen
×
×
  • Nieuwe aanmaken...