|
|
| Populärast Webhotell Epost Domän Egen server Bredband |
| Hemsida PHP ASP Java Databas Unix Allmänt CGI Statistik |
CrontabDet 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? |
Unix 97 Inloggning på Levonlines servrar med SSH |