Adding cronjob in PLI Citrine image

eendenteam

Addicted Member
Administrator
Moderator
Lid sinds
1 feb 2004
Berichten
6.293
Waarderingsscore
80
Punten
48
Leeftijd
122
Wie weet hoe je een cronjob kunt toevoegen in een PLi Citrine image.
Uiteraard hebben we in de run services al opgegeven dat crond gestart moet worden, maar we kunnen niet vinden waar die in de image staat. We willen nl. een script elk uur laten starten.

Wie weet hoe dat in vorengenoemde image moet ?
 
Hoi Eend,

Ik heb PLI nog nooit gebruikt, dus ik weet het voor de snel even niet; Maar:
Heb je het Find commando al misbruikt voor crond?

In de Hydra staat crontab gewoon in bin.

Normaal gesproken zou je je script in bv cron.hourly kunnen zetten. Wellicht in /etc/cron.hourly?

G
 
Nee dat gaat onder PLi anders. Inmiddels zijn we er achter dat crond in /bin staat. Via Busybox kwamen we er achter dat ook het binaire bestand crontab aanwezig is. Dan maar even de help functie gebruiken dachten we en we krijgen als output:

Usage: crontab [-c dir] {file|-}|[-u|-l|-e|-d user]

de -e optie is om te editten dat hebben we gedaan. Krijgen we een melding dat /var/spool/cron/crontabs als file of als dir niet gevonden is. Handmatig maar snel die dir /var/spool/cron/crontabs aangemaakt en nog eens de -e optie. Pfff, komen we in die $%^&* VI terecht. Daar maar wat ingetikt en kijken wat het gevolg is. Blijkt er een bestandje genaamd root aangemaakt te zijn (verwijzend naar de gebruikernaam: we zijn ingelogd als root). Snel via FTP maar de file root gevuld als ware het een (bekende) crontab-file.

We hebben alleen de crontab dat er ingezet (dus wat er wanneer moet worden opgestart:

* * * * * root /var/bin/mijnscript.sh

maar ook geprobeerd met andere data erbij:


SHELL=/bin/sh
PATH=/bin:/var/bin:/var/keys
* * * * * root /var/bin/mijnscript.sh

We dachten dat in beide gevallen elke minuut dat script opgestart zou worden, maar niets dus.

Het script wordt niet gerund. Overigens hebben we in de profile gekeken en daar zien we dat crond geactiveerd is, dus crond zou moeten starten, maar ja met die image weet je het nooit.

Nog ideeen?
 
VI moeilijk / lastig? Welnee... wereld editor ;)

De profile heb je het over? Heb je al een ps -A gedaan om te kijken of cron wel echt draait?
Je zou hem handmatig kunnen starten (en dan niet de deamon).

Indien ps -A je scherm afrolt: ps -A | more


(of less als dat geinstalleerd is ;))



G
 
we zien crond staan, dus de cron draait.
Misschien wel een directory probleem (crond kijkt misschien wel ergens anders)...?
 
Mag ik vragen wat je voor script probeert te draaien?
Ik ben even gaan zoeken, en ik ben iets tegengekomen wat hier sterk op leek; Dat bleek alleen een scriptfout... (typo)



G
 
ja dat mag je BiG_G :biggrin::biggrin::biggrin:
 
Wat voor scriptje draai je?



:biggrin::biggrin::biggrin::biggrin:


[SIZE=-7](al heb ik denk ik al een vermoeden.........)[/SIZE]
 
Een script om keys automatisch te updaten en in een bep. bestand weg te schrijven. Dat scripts is goed want als we het handmatig opstarten gaat alles goed.
 
GEVONDEN !!!!

Probleem is dat crond standaard kijkt naar /var/spool/cron/crontabs voor een crontab bestand (doet die bij meerdere distru's). Hij kijkt echter ook naar een crontab file in /var/etc.

Echter de structuur van beide crontab bestanden VERSCHILLEN !!!

Wat had ik nu gedaan: ik had de structuur van de crontab uit /var/etc gebruikt in die in /var/spool/cron/crontabs. En daar ging het dus mis....!

Het verschil zit hem in de usernaam, die geef je wel op voor /var/etc maar niet in die andere. Verder heb ik de SHELL en PATH regels verwijderd en voila...werken

Voor de volledigheid: ik heb nu in de map /var/spool/cron/crontabs een bestand staan genaamd: root

Dit root-bestand, dat een crontab file is voor de user root, ziet er als volgt uit:

0 * * * * /var/bin/mijnscript.sh

Daarmee laat ik het script elk heel (en rond uur) opstarten en dus worden de keys netjes geupdate.

Verder kun je het beste als volgt te werk gaan vanaf de telnet prompt:

killall crond
crontab -e
crond

en gaan met die banaan. Wel eerst zorgen dat de directory /var/spool/cron/crontabs bestaat. door het te doen zoals aangegeven zal crontab -e er voor zorgen dat er een tijdelijk bestand crond.update in de directory komt te staan.

Dank voor de hulp !
 



Hosting Fun

Advertenties

Terug
Bovenaan Onderaan