Crontab - hos Levonline IT hotell, web hotel

Support

Välkommen till vår supportsektion. Bläddra ner för svaret på din fråga. Har du en teknisk fråga hittar du antagligen svaret på den nedan, eller så kan du prova att söka. Om du saknar något här eller har fått hjälp med något via vår support som du tycker borde finnas här, hör gärna av dig till oss så ordnar vi det!

Utöver supportsidorna har vi tagit fram en rad verktyg för domän och hemsida. Bland verktygen finner du guider för whois, SPF, HTTP-huvuden och mycket mer!

Om du behöver hjälp direkt av vår duktiga support är du välkommen att höra av dig per e-post (support@levonline.com) eller via telefon (08-320 360); vår kundtjänst finns tillgänglig vardagar mellan kl. 08:00 och 18:00 för att hjälpa dig med alla tänkbara problem eller önskemål.

Nedan finner du även ett kontaktformulär för supportfrågor.
Fritext sök
Populärast Webhotell Epost Domän Egen server Bredband
Hemsida PHP ASP Java Databas Unix Allmänt CGI Statistik

Crontab

Det går bra att schemalägga att så att ett program eller script körs vid vissa tidpunkter. Du ordnar detta genom att logga in på Levonlines inloggningsdator. Se punkten Inloggning på Levonlines servrar för mer om detta.

Vi ser gärna att du inte startar dina schemalagda program exakt på hela timslag eller hela tiominutersslag. Eftersom det finns fler användare som kör schemalagda program tenderar det att bli många schemalagda precis på helslagen och sedan lungt fram till nästa hel eller halvslag. Välj en slumpvis minut istället för ett helslag om det inte är viktigt för dig att ditt arbete körs tex. 01:00 varje natt.

Du får inte köra sk bottar eller program lyssnar på en egen port på våra servrar. Nu efter alla förmaningar går vi raskt vidare till hur du gör för att schemalägga ett arbete.

Skapa först ett script som du vill köra varje natt, exempelvis i det här fallet en fil i katalogen bin som heter daily.crontab.sh:

$ cd
$ mkdir bin
$ cd bin
$ pico daily.crontab.sh

Lägg i scriptet in de kommandon du vill köra. I det här exemplet är det en websida som besöks och där innehållet mailas till en viss e-postadress.

#!/bin/bash

lynx -dump http://www.mindomän.com | mail info@mindomän.com

Se till att scriptet är exekverbart och redigera din crontab:

$ chmod +x daily.crontab.sh
$ crontab -e

Lägg sedan i crontabben in att scriptet skall köras exempelvis klockan 01.01 varje natt:

1 1 * * * ~/bin/daily.crontab.sh

Nu skall det vara klart. Du bör också testa ditt script så att det gör vad du vill att det skall göra genom att köra det direkt:

$ ./daily.crontab.sh
$ _

För att läsa mer om formatet i crontab så läs manualen genom att skriva man 5 crontab. Bläddra fram genom att trycka mellanslag och avsluta med q. Lycka till!

$ man 5 crontab
[...]

CRONTAB(5)                                             CRONTAB(5)

NAME
       crontab - tables for driving cron

DESCRIPTION
       A crontab file contains instructions to the cron(8) daemon
       of the general form: ``run this command at  this  time  on
       this  date''.   Each  user has their own crontab, and com­
       mands in any given crontab will be executed  as  the  user
       who  owns  the  crontab.   Uucp and News will usually have
       their own crontabs, eliminating the  need  for  explicitly
       running su(1) as part of a cron command.

       Blank  lines  and  leading  spaces  and  tabs are ignored.
       Lines whose first non-space character is a pound-sign  (#)
       are comments, and are ignored.  Note that comments are not
       allowed on the same line as cron commands, since they will
       be  taken  to be part of the command.  Similarly, comments
       are not allowed on the same line as  environment  variable
       settings.

:_

Om du vill köra ett script varje natt mellan klockan 2 och klockan 5 måndagar och tisdagar var 15e minut kan du göra så här:

*/15 2-5 * * 1,2 ~/bin/mandagar.mellan.tva.och.fem.varje.kvart.sh

För att spara på resurserna så undvik helst att köra cronjob som tar lång tid att utföra eller på annat sätt är ineffektiva. Ett cronjob som körs varje minut är defintivt på tok för ofta. Ett som körs varje timma kan också vara det, om det tar tid att köra. Varje natt är ganska tryggt. Använd vänligen ditt goda omdöme. Om vi på Levonline märker att cronjob körs för ofta eller ligger kvar och tar upp resurser i onödan så kan vi tvingas att ta bort det så använd gärna lockfil för att undvika detta, se nedan.

Om du tror att cronjobbet ibland inte avslutar eller på annat sätt tar resurser i onödan så kan du se till att skydda dig mot att det ligger och kör flera parallellt med en lockfil. Så här kan man göra.

#!/bin/bash

#
# Vänta 10 sekunder 120 gånger (dvs 20 minuter) på att lockfilen
# försvinner. Om den inte försvunnit så låt bli.
# Men om lockfilen är äldre än 172800 sekunder (3 dygn) så kör på
# iallafall men vänta först i 40 sekunder så att den inte hinner
# skapas igen
#

LOCKCOMMAND="lockfile -10 -r 120 -l 172800 -s 40"
LOCKFILE=~/mittcronjobb.lock
LOCKDESC=~/mittcronjobb.desc

if $LOCKCOMMAND $LOCKFILE ; then
   echo `hostname` `date -Is` >$LOCKDESC
   echo "Ersätt mig med att göra vad som behöver göras..."
   rm -f $LOCKFILE $LOCKDESC
else
   echo "Hjälp! Det finns en lockfil! Så här ser den ut:"
   cat $LOCKDESC
   ls -la $LOCKDESC $LOCKFILE
fi

Fick du svar på din fråga?

Är du nöjd med svaret på frågan? Ge oss förslag på förbättringar här!




Denna information används för att förbättra artikeln i framtiden.
För snabb hjälp, använd istället kontaktformuläret längre ned.
KONTAKTA OSS!