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? :)
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
"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; ;; *) "
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
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
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.
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
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
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)
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.
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.