Avatar billede esf_spike Nybegynder
08. november 2002 - 16:17 Der er 29 kommentarer

cronjob

Jeg har et cronjob der skal køre hver mandag-torsdag aften kl. 22.30 og et andet der skal køre kl. 13 mandag til fredag. Jeg har prøvet følgene 2:

30 2 * * 1-4 /etc/init.d/thomas luk
0 13 * * 1-5 /etc/init.d/thomas aaben

Disse kører _IKKE_. Jeg har absolut ingen idé om hvorfor, men jeg kan se det på en logfil "thomas" kører, som er lokaliseret i /var/log/thomas. Den skriver dato og tid hvornår scriptet er kørt.
Hjælp? :)
Avatar billede esf_spike Nybegynder
08. november 2002 - 16:17 #1
hov, der skulle stå 30 22 i det første.
Avatar billede platman Nybegynder
08. november 2002 - 16:23 #2
Er du super-user når du definerer dine cronjob?
Avatar billede esf_spike Nybegynder
08. november 2002 - 16:24 #3
jeg er root.
Avatar billede esf_spike Nybegynder
08. november 2002 - 16:38 #4
jow jow, nu fik jeg endelig scriptet til at køre - men det gør ikke det som det skal.. det skriver til logfilen men ikke kommandoen før
Jeg paster lige scriptet:

#!/bin/sh
# script to open/close internet connection for my littlebrother

TIME=`date`
case "$1" in
    start)
        echo "+++ Starting thomas-control script"
        ;;
    stop)
        echo "+++ Stopping thomas-control script"
        ;;
    luk)
        echo "+++ Closing internet connection for thomas: .."
        iptables -A FORWARD -p ALL -d 192.168.1.3 -j DROP
        echo ". Done."
        echo "Thomas' connection shutted down at $TIME" >> /var/log/thomas
        exit 1;
        ;;
    aaben)
        echo "+++ Opening internet connection for thomas: .."
        iptables -D FORWARD -p ALL -d 192.168.1.3 -j DROP
        echo ". Done."
        echo "Thomas' connection opened at $TIME" >> /var/log/thomas
        exit 1;
        ;;
    *)
        echo "Usage: /etc/init.d/thomas (start|stop|aaben|luk)"
        exit 1;
esac
Avatar billede esf_spike Nybegynder
08. november 2002 - 16:38 #5
Og det er altså "iptables "sætningerne der ikke bliver udført
Avatar billede bacce.dk Nybegynder
08. november 2002 - 17:03 #6
"aaben)
        echo "+++ Opening internet connection for thomas: .."
        iptables -D FORWARD -p ALL -d 192.168.1.3 -j DROP
        echo ". Done."
        echo "Thomas' connection opened at $TIME" >> /var/log/thomas
        exit 1;
        ;;
    *)
"
hmm skulle det ikke være ACCEPT ???

"aaben)
        echo "+++ Opening internet connection for thomas: .."
        iptables -D FORWARD -p ALL -d 192.168.1.3 -j ACCEPT
        echo ". Done."
        echo "Thomas' connection opened at $TIME" >> /var/log/thomas
        exit 1;
        ;;
    *)
"
Avatar billede bacce.dk Nybegynder
08. november 2002 - 17:04 #7
den udfører nu nok commandoen, meen den sætter bare iptables til noget den allerede er sat til :-))
Avatar billede esf_spike Nybegynder
08. november 2002 - 17:42 #8
nej fordi hvis jeg udfører scriptet manuelt så virker det, og hvis jeg udfører det med crontab så sker der absolut intet i iptables..
Avatar billede bacce.dk Nybegynder
08. november 2002 - 18:36 #9
ej det passer jo ikke helt det du siger
du har denne stupm kode

luk)
        echo "+++ Closing internet connection for thomas: .."
        iptables -A FORWARD -p ALL -d 192.168.1.3 -j DROP
        echo ". Done."
        echo "Thomas' connection shutted down at $TIME" >> /var/log/thomas
        exit 1;
        ;;
    aaben)
        echo "+++ Opening internet connection for thomas: .."
        iptables -D FORWARD -p ALL -d 192.168.1.3 -j DROP
        echo ". Done."
        echo "Thomas' connection opened at $TIME" >> /var/log/thomas
        exit 1;
        ;;
    *)

denne kode gør lige nøjagtig det samme om du skriver
etc/init.d/thomas luk eller /etc/init.d/thomas aaben for der står det samme i iptables sætningen
men sel.f hvis du startede med at skrive /etc/init.d/thomas luk manuelt og derefter /etc/init.d/thomas aaben i cron så er det ligesom også derfor du ikke ser en ændring da de jo er ens
hvis du fek.s nu skriver /etc/init.d/thomas aaben manuelt og tjekker dine iptables og så derefter manuelt igen skriver /etc/init.d/thomas luk vil du også opdage at det heller ikke virker manuelt for så længe de 2 opgaver er ens vil den kun udføre opgaven første gang og alle andre gange vil der ikke komme ændringer
Avatar billede bacce.dk Nybegynder
08. november 2002 - 18:38 #10
men helt erligt prøv lige at læs dit script en gang du skriver følgende

echo "+++ Opening internet connection for thomas: .."
        iptables -D FORWARD -p ALL -d 192.168.1.3 -j DROP
        echo ". Done."
        echo "Thomas' connection opened at $TIME" >> /var/log/thomas

ergo du vil åbne alle porte til forward til det givne ip nummer meen som du kan se har du sat DROP på forward og derved åbner du jo ikke porten, det gør du med ACCEPT
Avatar billede dank Nybegynder
08. november 2002 - 18:53 #11
korrekt :o)
Avatar billede esf_spike Nybegynder
08. november 2002 - 19:02 #12
Jeg er udemærket klar over at de begge er DROP, men det er en fejl i pastningen, den ene er selvfølgelig ACCEPT. Men det ændrer ikke på at der ingen ændring ved scriptkørsel gennem cron ændres noget i iptables.
Lad os sige jeg skriver iptables -L FORWARD og den ingen regler viser.
Klokken 22.35 skriver jeg iptables -L FORWARD igen, og der er intet, selvom scriptet har kørt og skrevet til /var/log/thomas. Men hvis jeg derimod kører /etc/init.d/thomas luk manuelt, bliver det skrevet i log, OG iptables får en ny regel.
Avatar billede esf_spike Nybegynder
08. november 2002 - 19:03 #13
Nej vent - i tager fejl!
Hvis _I_ nu gad checke koden.. jeg skriver i aaben) delen iptables -D.. bemærk D for delete! Så det har været rigtigt hele tiden, dvs. du har tabt. :P
Avatar billede dank Nybegynder
08. november 2002 - 19:09 #14
gud du har squ ret.. Og måden du gør det på er egenligt også ok..

virker det hvis du bare afvikler den fra shell.. jeg tænker på om du er sikker på om scriptet virker og det er cron der er problemet?
Avatar billede esf_spike Nybegynder
08. november 2002 - 19:11 #15
scriptet virker perfekt hvis jeg exec'er det fra shell, men fra cron - nej.
Avatar billede dank Nybegynder
08. november 2002 - 19:13 #16
ok.. så skal du benytte udelukkesesmetoden

indsæt en lilie al'la dette i starten af scriptet:

#!/bin/sh
date > fil

Og afvent.. hvis scriptet kører vil du kunne se det relativt nemt.
Avatar billede dank Nybegynder
08. november 2002 - 19:14 #17
arrgh
Avatar billede dank Nybegynder
08. november 2002 - 19:14 #18
jeg læste lige dit spørgsmål fra starten.. kan se du er sikker på scriptet bliver afviklet, eller hvad?
Avatar billede esf_spike Nybegynder
08. november 2002 - 19:20 #19
Ja, jeg får et entry i /var/log/thomas hvor den skriver det er executed på den givne dato.
Avatar billede dank Nybegynder
08. november 2002 - 19:21 #20
prøv at angive den fulde sti til iptables i scriptet

eller benyt which i starten af scriptet
Avatar billede dank Nybegynder
08. november 2002 - 19:23 #21
IPTABLES=`which iptables`

IPTABLES -D FORWARD -p ALL -d 192.168.1.3 -j DROP
Avatar billede dank Nybegynder
08. november 2002 - 19:25 #22
hvis du forstår hvad jeg mener.. script der afvilkes i cron har det med at være lidt følsomme.. specielt hvis du ikke eksporter path.. eller noget i den retning..

Det vil sige.. dit script bliver afviklet. men det gør iptables linen ikke.. Hvis du er i tvivl kan du evt. indsætte

iptables -L > fil

lige efter din iptables.. så kan du se indholdet efter hver gang..

Men jeg følger mig 100% sikker på det er problemet. efter jeg har læst tingene igennem
Avatar billede bacce.dk Nybegynder
08. november 2002 - 19:25 #23
okey
sorry her fra også.
Den lille detalge havde jeg sku heller ikke set :-))
Avatar billede dank Nybegynder
08. november 2002 - 19:28 #24
tjaae.. grunden til at vi overså den er givethvis fordi dette ikke er en "normal" måde at gøre dette på.. Normalt indsætter man iptables i start) og flusher i stop)

Men din måde er ok!
Avatar billede dank Nybegynder
08. november 2002 - 19:28 #25
PATH=/usr/sbin:/usr/bin:/usr/local/bin:/usr/ccs/bin:/usr/ucb:/etc

eller noget i den stil i starten af scriptet
Avatar billede esf_spike Nybegynder
09. november 2002 - 13:34 #26
Sorry for det langvarige svar, julebryggen faldt jo igår... :)
Jeg vil lige prøve det her:
IPC="/sbin/iptables"
$IPC -A FORWARD ...etc
Avatar billede esf_spike Nybegynder
09. november 2002 - 13:51 #27
Jeg tror egentligt mit primære problem er at få crontab til at køre..
Jeg har prøvet at køre crontab i 25 minutter nu, med forskellige linier..
Dette skriver jeg i crontab -e:
50 13 * * * /etc/init.d/thomas luk
og jeg VED at "/etc/init.d/thomas luk" skriver et entry til logfilen /var/log/thomas, så den har jeg tail -f'ed i et vindue, men der sker intet. Hvis jeg bare får crontab til at køre fejlfrit tror jeg godt selv jeg kan resten.
Avatar billede dank Nybegynder
09. november 2002 - 21:42 #28
hvad siger log om crontab
Avatar billede esf_spike Nybegynder
09. november 2002 - 21:47 #29
hvilken log?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester