gattaccio Geplaatst: 10 januari 2010 Geplaatst: 10 januari 2010 zou er iemand mij kunnen helpen met wat uitleg over crontabs? ik heb er al even mee zitten prutsen maar kom er niet uit. mijn crontab commando is: crontab -e hier krijg ik dan het vogend te zien in terminal: crontab: cannot change dir to /var/spool/cron/crontabs: No such file or directory[/color] als ik deze directory dan aanmaak en een crontab ingeef in vi bv: * * * * * echo " hello" ( zou elke min moeten opstarten) gebeurd er niets ook niet na het commando crond restart als ik ipv de hierboven opdracht het volgende gebruik * * * * * echo "hello" > /var/etc/hello.txt dan verschijnd de file hello.txt in mijn directory /etc. Mijn vraag is dus het volgende: hoe kan ik de cronjob wel laten werken met echo of zelfs om een script te doen opstarten met crontab. En hoe kan ik ervoor zorgen dat die niet gewist wordt als ik mijn DM hertart?
Gast MiLo Geplaatst: 10 januari 2010 Geplaatst: 10 januari 2010 Zier ernaar uit dat er iets niet goed geconfigureerd is in OpenPLi voor cron. /var/spool/cron wijst naar /usr/cron en die bestaat niet (foutje in PLi, zal het op de TODO lijst zetten). Code: mkdir /usr/cronmkdir /usr/cron/crontabs Nu zou het moeten werken en ook een herstart overleven. (alles in /var verdwijnt na reboot) Dat een 'echo' in je script geen effect heeft is normaal (en correct) cron gedrag. Je kunt de output naar een file sturen en die eventueel met "tail -f" volgen.
gattaccio Geplaatst: 10 januari 2010 Auteur Geplaatst: 10 januari 2010 was even te vermelden dat ik nabilosat gebruik. ok ik heb inmiddels begrepen dat ikgeen echo kan doen maar hoe kan ik dan een script waar wel een echo of een andere commando in staat doen opstarten om de menuut??
Gast MiLo Geplaatst: 10 januari 2010 Geplaatst: 10 januari 2010 In snap het niet. Wat wil je nou met die echo? Code: while truedo echo "Hello world" sleep 1done Zet elke seconde tekst op je terminal. Is dat wat je wil?
gattaccio Geplaatst: 10 januari 2010 Auteur Geplaatst: 10 januari 2010 wat ik wil si dat hij om de zoveel tijd een script die ik gemaakt heb uitvoerd. Waar bv een echo zou instaan om te beginnen, zodat ik zie dat hij werkt.
Gast MiLo Geplaatst: 10 januari 2010 Geplaatst: 10 januari 2010 Da's good old crontab dus, werkt prima op de dreambox. Zoals ik al heb uitgelegd, "echo" (en alle andere uitvoer) gaat het putje in, dus da's het enige dat niet werkt. Dat is normaal en correct gedrag, want wat moet hij doen met de output als je geen telnet open hebt staan? Of als je er twee open hebt? En je hebt zelf al een methode genoemd om het te kunnen zien: Schrijf een file.
gattaccio Geplaatst: 10 januari 2010 Auteur Geplaatst: 10 januari 2010 idd maar als ik een file script scrijf met een commando in doet ie niets. Dit had ik eerst geprobeerd met in mijn script #!/bin.sh echo "hello" te zetten (script is uitvoerbaar chmod 755,dus hier ligt het ook nietaan) ter info ikgebruikgeen pli maar n a b i l o zou dit eenreden kunnen zijn.
gattaccio Geplaatst: 10 januari 2010 Auteur Geplaatst: 10 januari 2010 dank uvoor uw uitleg het is me ondertussen gelukt maar hoe doe ik dat nu om hem de cron ook na een reboot te doen uitvoeren?? dit zou ik zeer hard apreccieren als je me dit ook eens zou kunnen uitleggen.
Gast MiLo Geplaatst: 10 januari 2010 Geplaatst: 10 januari 2010 Is een bug in het image. Ik heb hem zojuist voor PLi gefixt, dus vanaf morgen werkt het in OpenPLi. Als je een ander image gebruikt, informeer de makers maar dat /var/spool/cron naar /etc/cron moet wijzen en niet naar /usr/cron.
gattaccio Geplaatst: 11 januari 2010 Auteur Geplaatst: 11 januari 2010 Zou je me even willen uitleggen hoe ik die doorverwijzing ook kan fixen in mijn geval. Zodat na een reboot cron nog weet wat hij moet doen. Probeer het me stapsgewijs uit te leggen want ben niet erg praktisch met linux.
Gast MiLo Geplaatst: 11 januari 2010 Geplaatst: 11 januari 2010 Als je image niet te veel afwijkt van de standaard, zou het volgende moeten werken vanuit een telnet sessie (bestaande crontab ben je dan wel kwijt): Code: rm -rf /usr/cronln -s /etc/cron /usr/croncrontab -e Normaal wordt na een "crontab -e" de cron automatisch op de hoogte gesteld van de wijzigingen, maar omdat er nu met de paden geknoeid is kan hij deze eerste keer in de war raken. Om output op te slaan kun je de uitvoer 'omleiden', dus net zogoed als 'echo "hello" > file.log' kun je 'hello.sh > file.log' doen en alle output van hello.sh gaat een bestandje in. Gebruik voor cronjob scripts absolute paden, omdat die in een heel kale omgeving staan. Bijvoorbeeld zo: Code: /home/root/hello.sh > /var/log/hello.log
Aanbevolen berichten
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 accountInloggen
Heb je reeds een account? Log hier in.
Nu inloggen