Kom ihåg mig?
Home Menu

Menu


Crontab

Ämnesverktyg Visningsalternativ
Oläst 2004-11-10, 20:19 #1
parsecode parsecode är inte uppkopplad
Nykomling
 
Reg.datum: Oct 2004
Inlägg: 8
parsecode parsecode är inte uppkopplad
Nykomling
 
Reg.datum: Oct 2004
Inlägg: 8
Tja

Jag är ute efter att skapa lite crontab jobb som ska köras på min server...

Jag har aldrig gjort det förr och undrar därför vilka skript språk man kan använda i programmet? Är det bara perl? Eller kan man köra php? Eller nått annat?

Tack!
parsecode är inte uppkopplad   Svara med citatSvara med citat
Oläst 2004-11-10, 20:28 #2
kullervos avatar
kullervo kullervo är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Dec 2003
Inlägg: 1 519
kullervo kullervo är inte uppkopplad
Bara ett inlägg till!
kullervos avatar
 
Reg.datum: Dec 2003
Inlägg: 1 519
crontab är till för att exekvera program/kommandon. Du kan alltså exekvera allt på samma sätt som du kan i ditt shell, så lämpligast är väl att skriva script i det språk du behärskar bäst. Jag kör gärna PHP eftersom det där det scriptspråket jag kan bäst, men smaken är som baken. Perl eller bash är nog vanligast.
kullervo är inte uppkopplad   Svara med citatSvara med citat
Oläst 2004-11-10, 20:36 #3
parsecode parsecode är inte uppkopplad
Nykomling
 
Reg.datum: Oct 2004
Inlägg: 8
parsecode parsecode är inte uppkopplad
Nykomling
 
Reg.datum: Oct 2004
Inlägg: 8
Allright!

Skulle passa mig perfekt att köra php.

Så jag skriver helt enkelt bara en php kod i en ascii fil? och kör den sen via crontab?
Har jag hajjat rätt då?

Har du lust att ge mig en syntax.
Starta filen: ingenaning.php den första november klockan 15:00?
parsecode är inte uppkopplad   Svara med citatSvara med citat
Oläst 2004-11-10, 20:44 #4
Sigurds avatar
Sigurd Sigurd är inte uppkopplad
Medlem
 
Reg.datum: Apr 2004
Inlägg: 289
Sigurd Sigurd är inte uppkopplad
Medlem
Sigurds avatar
 
Reg.datum: Apr 2004
Inlägg: 289
Citat:
Originally posted by parsecode@Nov 10 2004, 21:36
Allright!

Skulle passa mig perfekt att köra php.

Så jag skriver helt enkelt bara en php kod i en ascii fil? och kör den sen via crontab?
Har jag hajjat rätt då?

Har du lust att ge mig en syntax.
Starta filen: ingenaning.php den första november klockan 15:00?
Vilken typ av dator ska du köra det på? Windows?

Isåfall är det väldigt enkelt. Bara att schemanlägga en körning "den första november klockan 15:00" mha windows "schemanläggare".

EDIT: Kom och tänka på det... Har du gjort en batch-fil eller vill du ha hjälp från start?
Sigurd är inte uppkopplad   Svara med citatSvara med citat
Oläst 2004-11-10, 20:49 #5
parsecode parsecode är inte uppkopplad
Nykomling
 
Reg.datum: Oct 2004
Inlägg: 8
parsecode parsecode är inte uppkopplad
Nykomling
 
Reg.datum: Oct 2004
Inlägg: 8
från start. :/
parsecode är inte uppkopplad   Svara med citatSvara med citat
Oläst 2004-11-10, 22:55 #6
grazzy grazzy är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Mar 2004
Inlägg: 3 471
grazzy grazzy är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Mar 2004
Inlägg: 3 471
I unix finns det något som kallas "man" (man 5 crontab på mitt system för att få upp rätt dokumentation) , det är ett kommando för att se manualen för ett visst program. Om du har frågat liknande frågor till denna på andra ställen har du säkert även hört förkortningen RTFM.

Manualen säger:
The time and date fields are:

field allowed values
----- --------------
minute 0-59
hour 0-23
day of month 1-31
month 1-12 (or names, see below)
day of week 0-7 (0 or 7 is Sun, or use names)

Från det ena till det andra, för att editera crontab i unix:
crontab -e

För att skapa ett jobb som körs en gång i timmen:
1 * * * * <script>

För att skapa ett jobb som körs 1 november 15:00

00 15 1 11 * /usr/local/bin/php <script.php>

Det betyder att du använder tolken php för att parsa script.php. Du kan även definiera tolk i en ascii-fil genom att skriva #!/usr/bin/tolk längst upp i den och ge den execute-flaggan (chmod +x fil).

Asterisk betyder samma som i ett filnamn, dvs wildcard, dvs kör "alltid" när den matchar.

Om du vill köra ett script säg varannan timme:
* */2 * * * <script>

Eller var femte minut:
*/5 * * * * <script>

Jag hoppas det känns lite naturligare nu. Nästa gång, läs gärna manualen innan du frågar.
grazzy är inte uppkopplad   Svara med citatSvara med citat
Oläst 2004-11-11, 10:36 #7
parsecode parsecode är inte uppkopplad
Nykomling
 
Reg.datum: Oct 2004
Inlägg: 8
parsecode parsecode är inte uppkopplad
Nykomling
 
Reg.datum: Oct 2004
Inlägg: 8
taxi myxi.

Självklart läser vi manualen... Om vi vet att det finns en.
Där står t ex inte att man kan koda i php. Så det skadar ju inte att fråga. Det är väl det forumet är till för?
parsecode är inte uppkopplad   Svara med citatSvara med citat
Oläst 2004-11-11, 11:15 #8
kullervos avatar
kullervo kullervo är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Dec 2003
Inlägg: 1 519
kullervo kullervo är inte uppkopplad
Bara ett inlägg till!
kullervos avatar
 
Reg.datum: Dec 2003
Inlägg: 1 519
Citat:
Originally posted by parsecode@Nov 11 2004, 11:36
taxi myxi.

Självklart läser vi manualen... Om vi vet att det finns en.
Där står t ex inte att man kan koda i php. Så det skadar ju inte att fråga. Det är väl det forumet är till för?
Det är ju inte ofta något saknar en manual, och om den nu saknas så är det nog för att det inte behövs någon.

Crontab har inget med PHP att göra. Du kan bara exekvera program och kommandon i crontab precis som du kan i en terminal. Om du vill veta om du kan exekvera PHP från en terminal så får du ju läsa i manualen till PHP ffs. Normalt när du installerar/kompilerar PHP så följer det med en separat binär (antar att det är den man använder om man kör CGI). Hitta den och som argument när du exekverar skriver du PHP-filen du vill köra. T.ex:
Kod:
martin@hedkandi:/usr$ find -name php
./local/bin/php
./local/lib/php
./local/include/php
martin@hedkandi:/usr$ /usr/local/bin/php ditt_script.php
Tänk på att du inte kör i samma miljö som crontab, så om du har php i din path måste du förmodligen manuelt lägga in php i crontabs path. Eller så gör du som i mitt exempel och skriver ut hela sökvägen till php.
kullervo är inte uppkopplad   Svara med citatSvara med citat
Oläst 2004-11-11, 19:21 #9
zorans avatar
zoran zoran är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jun 2004
Inlägg: 598
zoran zoran är inte uppkopplad
Mycket flitig postare
zorans avatar
 
Reg.datum: Jun 2004
Inlägg: 598
Citat:
Ursprungligen postat av kullervo
Citat:
Ursprungligen postat av parsecode
taxi myxi.

Självklart läser vi manualen... Om vi vet att det finns en.
Där står t ex inte att man kan koda i php. Så det skadar ju inte att fråga. Det är väl det forumet är till för?
Det är ju inte ofta något saknar en manual, och om den nu saknas så är det nog för att det inte behövs någon.

Crontab har inget med PHP att göra. Du kan bara exekvera program och kommandon i crontab precis som du kan i en terminal. Om du vill veta om du kan exekvera PHP från en terminal så får du ju läsa i manualen till PHP ffs. Normalt när du installerar/kompilerar PHP så följer det med en separat binär (antar att det är den man använder om man kör CGI). Hitta den och som argument när du exekverar skriver du PHP-filen du vill köra. T.ex:
Kod:
martin@hedkandi:/usr$ find -name php
./local/bin/php
./local/lib/php
./local/include/php
martin@hedkandi:/usr$ /usr/local/bin/php ditt_script.php
Tänk på att du inte kör i samma miljö som crontab, så om du har php i din path måste du förmodligen manuelt lägga in php i crontabs path. Eller så gör du som i mitt exempel och skriver ut hela sökvägen till php.
Man behöver inte skriva hela sökvägen till PHP. Använder man sig av "shebang" slipper man det.

Det finns två sätt att göra det på:

1: utan shebang

0 * * * * /usr/local/bin/php /foo/bar/mittscript.php

2: med shebang

0 * * * * /foo/bar/mittscript.php

Metod nummer 2 kräver att skriptet börjar med

#!/usr/local/bin/php
(eller var sökvängen till php kan vara)

samt att den är exekverbar för användaren vars crontab kommer köra filen. Ett bra test är ju att man testar köra php-scriptet och se om den fungerar innan man lägger den i crontab. Med "köra" menar jag inte att anropa interpretatorn med php-scriptet som argument utan anropa scriptet direkt.

/Zoran
zoran är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 10:01.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017