Toon posts:

crontab vraagje

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik weet dat je met crontab taken die uitgevoerd moeten worden kunt automatiseren,

crontab -e
en dan kun je de tijd en file opgeven en zo.

Maar nu wil ik een file hebben die ik zo kan kopieeren van de ene machine naar de andere, zeg maar een installatie versie.

Kan ik zonder meer de file in /var/spool/cron nemen of moet er meer gebeuren.

ik heb dus een applicatie gebouwd die 's nachts data uit een file leest en in een database pompt. maar dat moet wel op meerdere servers draaien en ook naar nieuwe klanten kunnen, hiervoor wil ik niet elke keer met een editor moeten kutten om de cron aan de praat te krijgen.
het moet dus in een simpel commando, van uit een script of een file die gekopieerd kan worden.

Verwijderd

je kan zondermeer de file uit /var/spool/cron nemen, maar je moet er goed op letten dat de permissies op de bakken waar je um neerzet goed zijn. :)

Verwijderd

Topicstarter
Oke maar dat lukt wel.
Ook weet ik dat er opdat moment nooit een andere cron file zal zijn omdat ik de gene ben die ze installeerd

Verwijderd

Onder /etc/ kan je kiezen uit de dirs /cron.hourly /cron.daily /cron.montly of /cron.weekly

Jij kan onder /etc/cron.daily/ je opdracht script zetten, zoals b.v. McAfee scanner opstarten:
code:
1
2
3
#!/bin/sh

/usr/local/bin/uvscan --load /usr/local/uvscan/config --file /usr/local/uvscan/biglist --summary > /home/result.txt


in /etc/crontab geef je aan op welk tijdstip de /cron.daily etc.. moet worden uitgevoerd, b.v. 2:05 's nachts:
code:
1
05 2 * * * root run-parts /etc/cron.daily


Is dit ongeveer wat je wil weten?

  • mvdejong
  • Registratie: Juni 2000
  • Laatst online: 29-11-2024

mvdejong

When does the hurting stop ?

Nee, je moet ook de cron-daemon herstarten of anderszins "vertellen" dat de crontab-file gewijzigd is.

De netste weg is :
code:
1
2
3
4
crontab -e
:1,$d                         (verwijder ALLE huidige regels)
:r crontab.other_system       (lees crontab in die je van het andere systeem hebt gekaapt)
:wq

Door de editor te verlaten vertelt het crontab-commando aan /usr/sbin/cron (of waar dat ding dan ook moge staan) dat de crontab-file gewijzigd is en behoefte heeft aan herbestudering.
Andere oplossingen, waarbij je de crontab klakkeloos op zijn definitieve plek kopieert :
code:
1
kill -HUP <process-id van /usr/sbin/cron>


code:
1
2
kill <process-id van /usr/sbin/cron>
/usr/sbin/cron


Maar de eerste is de formeel juiste.

The number of things that Arthur couldn't believe he was seeing was fairly large


Verwijderd

Topicstarter
Nog mooier, dan kan ik gewoon een script naar /etc/cron.daily gooien,
en /etc/crontab ff aan passen. Wat ik zelf ook al dacht, maar ik er word gewaarschuwd dat je nooit /etc/crontab moet aanpassen. dus ging er vanuit dat het niet ging werken

Verwijderd

Topicstarter
ik wil niet met een editor moeten spelen. dus das geen oplossing

dat je cron moet herstarten is logisch

Verwijderd

Verwijderd schreef op 10 september 2002 @ 20:38:
Nog mooier, dan kan ik gewoon een script naar /etc/cron.daily gooien,
en /etc/crontab ff aan passen. Wat ik zelf ook al dacht, maar ik er word gewaarschuwd dat je nooit /etc/crontab moet aanpassen. dus ging er vanuit dat het niet ging werken
YUP, inderdaad handig :)

Wha CronTab mag je best aanpassen zoalang je daily maar daily laat etc.. Ik heb het aangepast omdat het tijdstip mij niet beviel. Standaard is 5:30 volgens mij.
Sterkte ermee!

  • Mark
  • Registratie: Juni 1999
  • Laatst online: 08-08 09:24
Houd je er ook nog rekening mee dat locaties waar de cronjobs komen te staan verschilt per unix variant en zelfs per linux distro (Slackware kent bijvoorbeeld geen /etc/cron.daily en dergelijke) ?
Is het niet gewoon makkelijker om een file aan te maken waar de cronjob in staat en deze te "installeren" met het commando: crontab filenaam -u usernaam

[ Voor 0% gewijzigd door Mark op 10-09-2002 23:56 . Reden: Toevoeging ]


Verwijderd

Mark schreef op 10 september 2002 @ 23:54:
Houd je er ook nog rekening mee dat locaties waar de cronjobs komen te staan verschilt per unix variant en zelfs per linux distro (Slackware kent bijvoorbeeld geen /etc/cron.daily en dergelijke) ?
Is het niet gewoon makkelijker om een file aan te maken waar de cronjob in staat en deze te "installeren" met het commando: crontab filenaam -u usernaam
Dat verhaal over Slackware is sinds 8.1 niet meer correct. Vanaf 8.1 is de modernere opzet met /etc/cron.daily enz. ook de Slackware manier van werken geworden.

  • Mark
  • Registratie: Juni 1999
  • Laatst online: 08-08 09:24
Verwijderd schreef op 11 september 2002 @ 00:29:
[...]

Dat verhaal over Slackware is sinds 8.1 niet meer correct. Vanaf 8.1 is de modernere opzet met /etc/cron.daily enz. ook de Slackware manier van werken geworden.
*Schaam* ..... Draai inmiddels op een 10-tal machines al weer slackware 8.1 en het is me nog niet eens opgevallen. Voel me een beetje een }:O nu.

Maar dan blijven er nog steeds *nix varianten die het niet doen. Ik ken zo al HP-UX en AIX welke dit niet zo doen.
Pagina: 1