[Raspbian] Script word niet uitgevoerd via crontab

Pagina: 1
Acties:

  • PerK
  • Registratie: Januari 2012
  • Laatst online: 19-10-2023
het lukt me niet om op mijn Raspberry Pi (Raspbian) een script via crontab te laten draaien elke minuut.

*ingelogd als: pi(default)

Ik heb het volgende script:

export DISPLAY=:"0.0"

XAUTHORITY=/home/pi/.Xauthority
xdotool getactivewindow
xdotool key F5


opgeslagen als: /usr/local/bin/refresh.sh

Als ik het commando: "sh refresh.sh" doe, dan doet het script het wel en refreshen hij de webpagina.

*Ik heb dit script als chmod to +x en 0755

In crontab heb ik nu:

*/1 * * * * /usr/local/bin/refresh.sh

Er gebeurd echter helemaal niks....

  • Kees
  • Registratie: Juni 1999
  • Laatst online: 10:44

Kees

Serveradmin / BOFH / DoC
En als je er
#!/bin/sh
bovenaan zet?

Overigens is * * * * * genoeg, die /1 hoeft er niet bij

[ Voor 40% gewijzigd door Kees op 13-02-2014 11:23 ]

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 01-10 21:30

Hero of Time

Moderator LNX

There is only one Legend

Je voert het script vanuit een GUI uit neem ik aan? Dan is het enigszins logsich dat 't werkt. Doe het eens vanaf een TTY of SSH sessie. Werkt het dan ook?

Wat is je uiteindelijke doel eigenlijk?

Commandline FTW | Tweakt met mate


  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 01-10 08:15

deadinspace

The what goes where now?

Ik denk dat er wel degelijk IETS gebeurt, kijk maar eens in /var/log/syslog ;)

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 01-10 21:30

Hero of Time

Moderator LNX

There is only one Legend

Of in /var/spool/mail/[jouw gebruiker]. Cron mailt altijd als er iets mis is en daar komt 't dan in te staan.

Commandline FTW | Tweakt met mate


  • sam.vimes
  • Registratie: Januari 2007
  • Laatst online: 08-06 08:44
Perkerssens schreef op donderdag 13 februari 2014 @ 10:38:
het lukt me niet om op mijn Raspberry Pi (Raspbian) een script via crontab te laten draaien elke minuut.

*ingelogd als: pi(default)

Ik heb het volgende script:

export DISPLAY="0.0"

XAUTHORITY=/home/pi/.Xauthority
xdotool getactivewindow
xdotool key F5


opgeslagen als: /usr/local/bin/refresh.sh

Als ik het commando: "sh refresh.sh" doe, dan doet het script het wel en refreshen hij de webpagina.

*Ik heb dit script als chmod to +x en 0755

In crontab heb ik nu:

*/1 * * * * /usr/local/bin.refresh.sh

Er gebeurd echter helemaal niks....
Dit script bevat een aantal aannames die allemaal fout kunnen gaan:
  • Er staat geen hashbang-regel bovenin. De kernel zal dan default /bin/sh als shell nemen. Specificeer de shell die je echt wilt gebruiken: #!/bin/bash.
  • De standaard Bourne-shell kent NIET de shortcut export VAR=value. Gebruik
    • ofwel VAR=value; export VAR
    • ofwel een shell die export VAR=value wel begrijpt, bijvoorbeeld bash.
  • de waarde van de DISPLAY-variable moet een dubbele punt bevatten. :0.0
  • je gaat ervan uit dat de X11-server op poort 6000 luistert (de eerste 0 na de dubbele punt in de DISPLAY-variabele). Dat hoeft niet zo te zijn, met name als je via ssh -X bent ingelogd.
  • je vraagt de id van het actieve window op, maar doet daar niets mee
  • je stuurt een key F5-event naar de X11-sessie zonder te weten in welk window dat event terecht komt. Het is maar de vraag het programma dat het event krijgt er wel wat mee kan.
Als je echt elke minuut een webpagina wil verversen, kun je dat beter op een andere manier doen:
  • ofwel een iMacro die elke minuut de gewenste pagina opvraagt.
  • ofwel een script dat in de actieve X11-sessie met xdotool het browser-window zoekt en daar vervolgens de F5-key naar toe stuurt.
Bash:
1
2
win=$(xdotool search --name -- '- Mozilla Firefox$')
xdotool --window=$win key F5


Lees ook de manpage van xdotool eerst goed door.

En gebruik code-tags.

[ Voor 0% gewijzigd door sam.vimes op 13-02-2014 15:12 . Reden: code-tags ]


  • u_nix_we_all
  • Registratie: Augustus 2002
  • Niet online
Ik weet niet welke browser je gebruikt, maar met een desktop-browser zoals chrome of firefox is dit typisch iets waarvoor veel handig plugins te vinden zijn. Zoiets als dit: https://addons.mozilla.org/nl/firefox/addon/reloadevery/

You don't need a parachute to go skydiving. You need a parachute to go skydiving twice.


  • thunder7
  • Registratie: Januari 2003
  • Laatst online: 08:52

thunder7

houten vaas/schaal nodig?

code:
1
2
opgeslagen als: /usr/local/bin/refresh.sh
In crontab:     /usr/local/bin.refresh.sh
zoek de verschillen?

hout-nerd - www.hetmooistehout.nl of www.houtenschalen.nl


Acties:
  • 0 Henk 'm!

  • PerK
  • Registratie: Januari 2012
  • Laatst online: 19-10-2023
Hero of Time schreef op donderdag 13 februari 2014 @ 11:33:
Je voert het script vanuit een GUI uit neem ik aan? Dan is het enigszins logsich dat 't werkt. Doe het eens vanaf een TTY of SSH sessie. Werkt het dan ook?

Wat is je uiteindelijke doel eigenlijk?
Ik doe alles via SSH. Mijn doel is om de Raspberry Pi zo in te stellen dat wanneer hij opstart Chromium opent in kiosk mode en hij automatisch refreshen (doormiddel van een script).
u_nix_we_all schreef op donderdag 13 februari 2014 @ 15:44:
Ik weet niet welke browser je gebruikt, maar met een desktop-browser zoals chrome of firefox is dit typisch iets waarvoor veel handig plugins te vinden zijn. Zoiets als dit: https://addons.mozilla.org/nl/firefox/addon/reloadevery/
Ik heb al meerdere 'refresh' extensies gebruikt, maar het probleem is dat deze vaak niet automatisch opstarten. Auto Refresh Plus werkt niet zoals ik wil in chromium (bug?). Ik display een lokale webfile en dat vinden sommige refresh extensies ook niet leuk.
Typo: edited

[ Voor 4% gewijzigd door PerK op 14-02-2014 02:52 ]


Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 01-10 21:30

Hero of Time

Moderator LNX

There is only one Legend

Als extensies e.d. niet goed werken, maak dan een lokaal .html bestand en zet de pagina die je wilt in een iframe, waarbij de hele pagina via javascript wordt vervest.

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • u_nix_we_all
  • Registratie: Augustus 2002
  • Niet online
Misschien niet eens javascript voor nodig, een HTML meta refresh tag zou het al kunnen doen ?

You don't need a parachute to go skydiving. You need a parachute to go skydiving twice.


Acties:
  • 0 Henk 'm!

  • PerK
  • Registratie: Januari 2012
  • Laatst online: 19-10-2023
u_nix_we_all schreef op vrijdag 14 februari 2014 @ 09:26:
Misschien niet eens javascript voor nodig, een HTML meta refresh tag zou het al kunnen doen ?
Probleem is dat die webpagina uit Excel komt... en elk half uur opnieuw word opgeslagen

Acties:
  • 0 Henk 'm!

  • u_nix_we_all
  • Registratie: Augustus 2002
  • Niet online
Perkerssens schreef op vrijdag 14 februari 2014 @ 09:34:
[...]


Probleem is dat die webpagina uit Excel komt... en elk half uur opnieuw word opgeslagen
Als dat met een macro gedaan wordt (lijkt me waarschijnlijk) is die vrij eenvoudig aan te passen natuurlijk :)

Edit: Greasemonkey/tampermonkey plugin met refresh script is missien ook een optie, maar die lokale html met javascript van Hero blijft ook een optie dan.

[ Voor 19% gewijzigd door u_nix_we_all op 14-02-2014 10:00 ]

You don't need a parachute to go skydiving. You need a parachute to go skydiving twice.


Acties:
  • 0 Henk 'm!

  • Cassettebandje
  • Registratie: Juli 2002
  • Laatst online: 13:33

Cassettebandje

SA-C90 TDK

Let op dat cron files met een punt in de naam niet uitvoert: https://bugs.launchpad.net/ubuntu/+source/cron/+bug/706565

Verder: om een webpagina te refreshen:
code:
1
2
3
4
5
6
7
8
<html>
<head>
<meta http-equiv="refresh" content="5">
</head>
<body>
<iframe src="pagina die je eigenlijk wilt laten zien" width="100%" height="100%">
</body>
</html>

Dat lokaal opslaan en openen en je hoeft niks meer te doen.

Acties:
  • 0 Henk 'm!

  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 01-10 08:15

deadinspace

The what goes where now?

Crontab files in /etc/cron.d mogen (in Debian en afgeleiden) geen punt in de naam bevatten. De TS roept een shell-script aan vanuit zijn user crontab, dat is nogal wat anders (en dat kan prima met een punt in de naam).

Acties:
  • 0 Henk 'm!

  • PerK
  • Registratie: Januari 2012
  • Laatst online: 19-10-2023
Cassettebandje schreef op vrijdag 14 februari 2014 @ 10:00:
Let op dat cron files met een punt in de naam niet uitvoert: https://bugs.launchpad.net/ubuntu/+source/cron/+bug/706565

Verder: om een webpagina te refreshen:
code:
1
2
3
4
5
6
7
8
<html>
<head>
<meta http-equiv="refresh" content="5">
</head>
<body>
<iframe src="pagina die je eigenlijk wilt laten zien" width="100%" height="100%">
</body>
</html>

Dat lokaal opslaan en openen en je hoeft niks meer te doen.
Dit werkt perfect, bedankt!
Door dit iframe word mijn content een stuk kleiner weergegeven. Is er een optie om mijn content inside de iframe passend te maken?

EDIT: content in een iframe kan niet gemakkelijk worden vergroot.

Is er een andere optie om toch een auto refresh te krijgen? (die ook automatisch opstart bij boot & die niet verpringt als de wifi er een keer uit valt)

[ Voor 24% gewijzigd door PerK op 18-02-2014 02:50 ]

Pagina: 1