Hva er den riktige måten å redigere en crontab-fil på?

Jeg prøver å automatisere oppdateringen av awstats for webserveren min og forstår at jeg trenger å bruke cron for å sette det opp. Så hver bruker har en crontab-fil?

Jeg fulgte instruksjonene her community/AWStats

Og det står å gå til filen på: /etc/crontab

Den filen har allerede litt informasjon i seg. Er dette hovedfilen crontab eller noe? Jeg har sett noen instruksjoner på nettet for å bruke filen som dukker opp med crontab -e .

Hva er den riktige filen å bruke og den beste måten å gjøre dette på?

Hvis jeg planlegger en oppgave som ikke-root-bruker, vil den kjøre av seg selv i tidsintervallet som angitt, uten problemer?

Må jeg starte serveren på nytt etter å ha lagret cron-jobben i crontab-filen før den begynner å fungere?

**Hvilken fil skal brukes, og hvordan gjør man dette best?

crontab -e er den beste måten å gjøre det på - dette lar deg enkelt redigere crontabs per bruker.

**Hvis jeg planlegger en oppgave som min ikke-root-bruker, vil den kjøre av seg selv i tidsintervallet som spesifisert, uten problemer?

Ja, og den vil kjøre med rettighetene til den brukerkontoen.

Som et prinsipp er det best å kjøre planlagte oppgaver med de laveste rettighetene du kan komme unna med, så hvis det du gjør ikke krever root, ikke bruk root. Hvis du ikke engang trenger å ha tilgang til din kontos filer og mapper, kan du opprette en ny bruker og bruke den brukerkontoen kun til den oppgaven. På den annen side, hvis oppgaven din krever root, bruk root&# 39s crontab (su / sudo su for å rote og deretter bruke crontab -e).

**Må jeg starte serveren på nytt etter å ha lagret cron-jobben i crontab-filen før den begynner å fungere?

Nei, det vil begynne å fungere med en gang (vel, neste mulige planlagte tidspunkt).

**Hvorfor ikke redigere filen direkte? Hvor ligger den?

Brukerens crontab-filer ligger i /var/spool/cron/crontabs, men tillatelsene deres er satt på en slik måte at de ikke kan krysses uten superbrukertillatelse (men når den er åpen og cron-prosessen slipper privilegier, kan den fortsatt få tilgang til filen).

Systemet er ikke laget for at sluttbrukere skal kunne redigere disse filene direkte, og øverst i filen er det en streng advarsel om dette, "IKKE REDIGER DENNE FILEN". Filen er i stedet designet for å redigeres via crontab -e som setter opp et midlertidig speil av filen i /tmp for redigering - uten den strenge advarselen - hvoretter den sjekker og installerer den permanente crontab-filen selv. Alt dette kan gjøres uten superbrukertillatelse.

Hvis du redigerte crontab-filen direkte, vet jeg ikke hva resultatet ville bli. Det er mulig det rett og slett ikke ville tre i kraft før neste omstart, og eventuelle feil kan være vanskelig å feilsøke.

Kommentarer (1)

Hver bruker har sin egen "fronttab".

For å se den er det bare å skrive

crontab -l

og, ja du'har sett det riktig, når du vil legge til en crontab, gjør du bare det

crontab -e

for første gang vil du bli spurt om redigeringsprogrammet du skal bruke med crontab. Siden du er en nybegynner som du sier, vil jeg anbefale å bruke nano, det er den enkleste editoren å bruke.

Selve crontab fungerer slik

MIN =  Minute 0-60
HOUR = Hour [24-hour clock] 0-23
MDAY = Day of Month 1-31
MON = Month 1-12 OR jan,feb,mar,apr ...
DOW =  Day of Week 0-6 OR sun,mon,tue,wed,thu,fri,sat
COMMAND = Command to be run Any valid command-line

Så f.eks. for å utløse en jobb hvert 15. minutt bare på mandag, gjør du det slik

*/15 * * * mon /home/me/yourscript.sh

og JA, det er veldig viktig at du legger cronjobben din i crontabben til brukeren som har nok rettigheter til å utføre den.

Så hvis skriptet ditt må være root eller en spesiell bruker, må du sørge for å su til den brukeren og legge til cronjobben der.

Også veldig viktig!

cronjob er dum! Ja, jeg sa det. Sørg alltid for å oppgi hele banen til applikasjonen / kommandoen / skriptet du bruker, fordi crontab ikke fungerer med .bashrc eller lignende. Du må alltid sørge for at du forteller cron hvor den kan finne filene og katalogene.

For å svare på resten av spørsmålene dine: **.

Selvfølgelig vil den kjøre på egenhånd, det er det den er der for. Men du må sjekke at cronjob virkelig gjør det, eller om det mangler noe. Logg f.eks. inn i en loggfil for å se om den virkelig fungerer.

Og NEI, en omstart er ikke nødvendig. En omstart med linux er normalt bare nødvendig hvis du installerer en ny kjerne. For at den skal brukes, må du starte på nytt. Nesten alt annet kan gjøres uten omstart i Linux. *Selvfølgelig er det unntak, men generelt er dette utsagnet riktig.

Kommentarer (1)