Opprette cron-jobber på VPS via SSH
Cron-jobber brukes til å kjøre kommandoer eller skript automatisk på bestemte tidspunkt. Dette kan for eksempel være vedlikeholdsskript, backup, opprydding av filer eller PHP-skript som skal kjøres med jevne mellomrom.
På en VPS kan du sette opp cron-jobber selv via SSH.
Før du begynner
Du må ha:
- tilgang til VPS-en via SSH
- en bruker med riktige rettigheter
- kommandoen eller skriptet du vil kjøre
- riktig filsti til skriptet på serveren
Tips: Bruk alltid absolutte filstier i cron-jobber. Det gjør oppsettet mer stabilt og enklere å feilsøke.
Steg 1: Koble til VPS-en via SSH
Logg inn på VPS-en med SSH.
Eksempel:
ssh brukernavn@server-ipBytt ut brukernavn og server-ip med brukernavn og IP-adresse for din VPS.
Steg 2: Vis eksisterende cron-jobber
Du kan se cron-jobbene som allerede er lagt inn for brukeren med:
crontab -lHvis brukeren ikke har noen cron-jobber fra før, vil du få beskjed om at det ikke finnes noen crontab.
Steg 3: Rediger crontab
For å opprette eller endre cron-jobber bruker du:
crontab -eFørste gang du åpner crontab, kan du bli bedt om å velge teksteditor. Velg for eksempel nano hvis du ønsker en enkel editor.
Steg 4: Legg inn cron-jobben
En cron-jobb består av en tidsplan og en kommando som skal kjøres.
Formatet ser slik ut:
* * * * * kommandoFeltene betyr:
# .---------------- minutt (0 - 59)
# | .-------------- time (0 - 23)
# | | .------------ dag i måneden (1 - 31)
# | | | .---------- måned (1 - 12)
# | | | | .-------- ukedag (0 - 7, der 0 og 7 er søndag)
# | | | | |
# * * * * * kommandoEksempel: Kjør et PHP-skript hver time:
0 * * * * /usr/bin/php /var/www/html/cron/cron.php > /dev/null 2>&1I dette eksempelet kjøres filen /var/www/html/cron/cron.php én gang i timen.
Bytt ut filstien med riktig sti til skriptet på din egen VPS.
Vanlige eksempler
Kjør et skript hvert femte minutt:
*/5 * * * * /usr/bin/php /var/www/html/cron/cron.php > /dev/null 2>&1Kjør et skript hver dag kl. 02:00:
0 2 * * * /usr/bin/php /var/www/html/cron/cron.php > /dev/null 2>&1Kjør et skript hver mandag kl. 03:30:
30 3 * * 1 /usr/bin/php /var/www/html/cron/cron.php > /dev/null 2>&1Logge output fra cron-jobben
I eksemplene over sendes output til /dev/null. Det betyr at output fra kommandoen forkastes.
Hvis du vil lagre output i en loggfil i stedet, kan du sende det til en fil:
0 * * * * /usr/bin/php /var/www/html/cron/cron.php >> /tmp/cron.log 2>&1Dette kan være nyttig når du tester eller feilsøker en cron-jobb.
Merk: Sørg for at brukeren som kjører cron-jobben har skrivetilgang til loggfilen eller mappen du logger til.
Steg 5: Lagre og lukk editoren
Hvis du bruker nano, lagrer du med:
Ctrl + OTrykk deretter Enter, og lukk editoren med:
Ctrl + XCron-jobben blir aktiv så snart crontab-filen er lagret.
Test cron-jobben
Før du legger inn en kommando i crontab, bør du teste kommandoen direkte i terminalen.
Eksempel:
/usr/bin/php /var/www/html/cron/cron.phpHvis kommandoen ikke fungerer manuelt, vil den heller ikke fungere som cron-jobb.
Feilsøking
Hvis cron-jobben ikke kjører som forventet, kan du sjekke dette:
- Bruker du absolutte filstier?
- Har brukeren riktige rettigheter til filen som skal kjøres?
- Fungerer kommandoen når du kjører den manuelt?
- Bruker du riktig PHP-sti, for eksempel
/usr/bin/php? - Logger du output til en fil du har tilgang til?
- Er serverens tidssone riktig?
Du kan sjekke hvor PHP ligger med:
which phpBruk resultatet fra kommandoen i cron-jobben hvis PHP ligger et annet sted enn /usr/bin/php.
Oppsummering
Cron-jobber er nyttige når du vil automatisere oppgaver på VPS-en din. Med crontab -e kan du legge inn kommandoer som skal kjøres automatisk, for eksempel hvert minutt, hver time eller én gang om dagen.
Bruk absolutte filstier, test kommandoen manuelt først, og logg output til en fil hvis du trenger å feilsøke.