Sida 1 av 1
Linux: Crontab - Web-gränssnitt för hantering av cron-job?
Postat: 23 oktober 2013, 18:07:51
av JimmyAndersson
Jag har en GNU/Linux-server (Debian) där jag vill få hanteringen av crontab-job lite mer överskådlig.
Som exempel så har jag nu 9st "job" som ska läggas upp med olika tider och "actions".
Varje jobb addresseras med ett ID på 15 tecken.
9 * 15 = 135 tecken att mata in. Det säger sig självt att eventuell felsökning inte blir så kul.

Att just lägga in jobben är en engångsgrej, men det ska administreras också...
Så jag har idén att baka in crontab-hanteringen i mitt övriga system (via PHP och SSH2).
Detta sköter jag jag via en websida (enbart lokalt på LAN'et) och med även crontab-biten där
så skulle allt bli samlat på ett ställe, plus att i princip all crontab-hantering kan göras
automatiskt av övriga systemet.
En kompromiss är förstås att låta admin-delen av systemet skicka ut en fil med alla cronjob
som ska läggas till och så låter man crontab ta den filen som indata.
Helt klart ok metod.

Nackdelen är att det behövs en annan variant för att visa inlagda crontab-jobb..
Så en php-class för SSH2/crontab vore inte dumt.
Jag har testat den här:
http://net.tutsplus.com/tutorials/php/m ... ith-php-2/
Men den fungerar inte speciellt bra. Blir det något fel, så utför den inget och man får inget meddelande..
Någon som känner till något annat som fungerar fint?
Re: Linux: Crontab - Web-gränssnitt för hantering av cron-jo
Postat: 23 oktober 2013, 18:09:56
av carpelux
webmin (
http://webmin.com/ ) fixar crontab + en uppsjö annan systemadminstration.
Re: Linux: Crontab - Web-gränssnitt för hantering av cron-jo
Postat: 23 oktober 2013, 18:11:58
av vaxfan
Har för mig att jag har använt ett webverktyg som heter webmin där man kan administrera en massa saker via webläsaren.
jag körde det i Ubuntu miljö, men borde även finnas för andra varianter av Linux.
Re: Linux: Crontab - Web-gränssnitt för hantering av cron-jo
Postat: 23 oktober 2013, 18:15:49
av JimmyAndersson
Två snabba forumister kan inte ha fel, så jag ska kika på det.
edit:
Hm, då gäller det förresten att jag kan stoppa in extern data där på något sätt.
(Alltså data från mitt övriga web-admin-system.)
Re: Linux: Crontab - Web-gränssnitt för hantering av cron-jo
Postat: 24 oktober 2013, 03:17:38
av JimmyAndersson
Jag har (förstås) funderat mer på det här.
Crontab bygger ju (precis som nästan allt annat i Unix/Linux) på filer.
Root har ju full åtkomst till dem.
De användare man skapar (t.ex "jimmy" i mitt fall) har sin egen crontab-fil
(som ju senare "blir" andra filer beroende på när ett cron-job ska köras).
När web-servern kör t.ex php så är ju användaren www-data och gruppen www-data.
Dessa har ingen crontab-fil. De är inte ens med i crontab-laget.
Detta leder mig i princip till två metoder för att kunna ha web-gränssnitt:
1) Låta www-data var med i gruppen crontab.
2) Använda SSH2 med php. (Det finns ett bra php-tillägg för det).
Variant nr 1 känns lite onödigt. Att låta www-data få tillgång till crontab bara för en enda applikation...
Säkerhetsmässigt är det ingen fara eftersom den här delen av nätverket är helt skilt från internet
och ingen av de anslutna enheterna har (eller kan få) resurser för att "hacka sig in" någonstans.
Jag ska testa med variant nr 2 så får vi se.
Det vore tveklöst renast och snyggast.
Plan Z (om ingen annan idé känns bra) är att ha ett crontab-jobb som med jämna mellanrum
kör igång ett script och att det då är detta script som jag utformar/styr med php.
Re: Linux: Crontab - Web-gränssnitt för hantering av cron-jo
Postat: 24 oktober 2013, 07:19:48
av Nerre
Den crontab som ligger i /etc/crontab (system-wide) stämmer det att man kan redigera som en fil, men om det är crontab för olika användare så måste den såvitt jag vet alltid redigeras via crontab-kommandot.
Re: Linux: Crontab - Web-gränssnitt för hantering av cron-jo
Postat: 24 oktober 2013, 08:24:33
av danielr112
använd sudo för att editera den användarens crontab du behöver köra mot.
Behöver du inte köra som root är ju ett förslag att köra som just www-data användaren.
Re: Linux: Crontab - Web-gränssnitt för hantering av cron-jo
Postat: 24 oktober 2013, 08:33:09
av Nerre
Som root kan man väl köra crontab [-u user] för att uppdatera crontab för en annan användare?
Re: Linux: Crontab - Web-gränssnitt för hantering av cron-jo
Postat: 24 oktober 2013, 08:35:06
av carpelux
sudo crontab -u www-data -e
Det borde lösa dina problem.
Re: Linux: Crontab - Web-gränssnitt för hantering av cron-jo
Postat: 24 oktober 2013, 09:50:05
av maDa
Tycker de lite snurriga idéer allihop om jag ska vara ärlig. Hålla på och krängla med crontab -e och SSH. Har du verkligen så mycket cronjobb att hålla reda på?
Gör ett PHP eller Python-skript som genererar en crontab-fil utifrån databasen, som körs av cron själv med rentav.
Re: Linux: Crontab - Web-gränssnitt för hantering av cron-jo
Postat: 24 oktober 2013, 10:56:13
av danielr112
Som sagt lösningarna är oändliga. Du kan också ha crontab till att köra ett script som sedan sköter ev körningar. t ex låt crontab varje minut köra run.php
i den så har du sedan definerat upp att den hämtar körscheman från en databas som körs... Ja som sagt beror ju på hur långt man vill gå.
Re: Linux: Crontab - Web-gränssnitt för hantering av cron-jo
Postat: 24 oktober 2013, 15:45:58
av JimmyAndersson
Carpelux:
"sudo crontab -u www-data -e
Det borde lösa dina problem."
Den raden gör ju så att jag editerar användare www-data's crontab-jobb.
Exakt samma resultat blir det om jag kör crontab genom PHP. T.ex med
shell_exec('crontab -e')
Nerre:
"Som root kan man väl köra crontab [-u user] för att uppdatera crontab för en annan använda"
Jepp.
*funderar en stund*
Ah, nu förstår jag hur ni menar. Det är alltså med tanke på det jag skrev
om att www-data inte är med i crontab-gruppen?
maDa:
"Har du verkligen så mycket cronjobb att hålla reda på?"
Jag har funderat och tittat på det flera gånger och svaret är helt enkelt: ja.

Det blir väldigt oöverskådligt att se vilka tider och script som utför de olika grejerna.
Dessutom är nästan allt annat automatiserat, så att då hoppa in manuellt
för att administrera crontab-job blir lite som att ta över någon annans arbete.
Men det gäller att jag hittar rätt sätt. Det är ingen mening med en lösning som i sig är rörig.

Att låta användaren www-data ha en crontab-fil skulle kunna bli rörigt.
(Allra helst brukar jag föredra om det bara är root som står för crontab-jobben.)
Jag har inte hunnit testa idén med SSH2 än.
Ska även koda ihop ett testcase med min plan Z, dvs att ha ett crontab-jobb som med
jämna mellanrum kör igång ett script och att det då är detta script som jag utformar/styr med php.
..Eller någon variant av det.