Pisanie skryptów w Tomato
|
nspk |
Dodano 03-12-2009 01:22
|
User
Posty: 1
Dołączył: 29/11/2008 16:01
|
Serdecznie witam,
chciałbym się dowiedzieć czy jest możliwość napisania skrytpu w Tomato, który pingowałby połączenie do serwera onetu. W przypadku braku responsu, po 3 probach skrypt restartowalby polaczenie. Po 3 takich probach restartowalby router. Skrypt ogolnie prosty do napisania(pisalem skrypty pod windowsem - CMD i PowerShell), tylko jak sie dostac do funkcji routerka, oraz czy moge taki skrypt napisac i uruchamiac z poziomu schdeulera tomato.
Jaki jezyk skyrptowy moze byc uzyty(bash, perl...)?
Czy sa jakies tutorialki itd?
NSPK. |
|
|
|
artpc |
Dodano 03-12-2009 08:43
|
User
Posty: 26
Dołączył: 20/06/2006 15:23
|
Wiecej skryptow na stronie dd-wrt
Automatic Connection Repair (always_on.sh)
* Pings your default gateway every time and force a DHCP renew if no packets are received.
Usagepath/to/always_on.sh &
#!/bin/sh
INTERVAL=10
PACKETS=1
UDHCPC="udhcpc -i vlan1 -p /var/run/udhcpc.pid -s /tmp/udhcpc"
IFACE=vlan1
ME=`basename $0`
RUNNING=`ps | awk '/'"$ME"'/ {++x}; END {print x+0}'`
if [ "$RUNNING" -gt 3 ]; then
echo "Another instance of \"$ME\" is running"
exit
fi
while sleep $INTERVAL
do
TARGET=`ip route | awk '/default via/ {print $3}'`
RET=`ping -c $PACKETS $TARGET 2> /dev/null | awk '/packets received/ {print $4}'`
if [ "$RET" -ne "$PACKETS" ]; then
echo Ping failed, releasing IP address: $IFACE
#send a RELEASE signal
kill -USR2 `cat /var/run/udhcpc.pid` 2> /dev/null
#ensure udhcpc is not running
killall udhcpc 2> /dev/null
echo Renewing IP address: $IFACE
$UDHCPC
echo Waiting 10 s ...
sleep 10
else
echo Network is up via $TARGET
fi
done
|
|
|
|
kobjac |
Dodano 03-12-2009 10:40
|
User
Posty: 111
Dołączył: 11/10/2006 14:54
|
w init czy firewall czy może jeszcze gdzie indziej? Dzięki
Gwarek
|
|
|
|
shibby |
Dodano 03-12-2009 16:11
|
SysOp
Posty: 17110
Dołączył: 15/01/2009 20:30
|
może być wszędzie tam gdzie nie zniknie po restarcie czyli np jffs, karta pamięci lub dysk usb.
skrypty piszesz np w sh lub bash (trzeba zainstalować sobie pełny bash) lub perlu (jeżeli masz perl zainstalowany).
Router: Unifi Cloud Gateway Max
Switch: Netgear MS510TXPP
Switch: Unifi USW-Flex-Mini - szt. 2
Wi-Fi: Unifi U6-Lite - szt. 2
Proxmox VE: i5-13400T, 64GB RAM, 2x 512GB NVMe, 3x 2TB SSD, Intel X710-DA2 SFP+
VM #1: Synology SA6400
VM #2: Debian, WWW
VM #3: Home Assistant OS
|
|
|
|
kobjac |
Dodano 03-12-2009 18:50
|
User
Posty: 111
Dołączył: 11/10/2006 14:54
|
Czy sprawdzał ktoś ten skrypcik działa? bo był by bardzo przydatny. Dzieki
Gwarek
|
|
|
|
shibby |
Dodano 04-12-2009 08:55
|
SysOp
Posty: 17110
Dołączył: 15/01/2009 20:30
|
pewnie bedzie dzialal ale
1) puszcza tylko jeden ping, troche malo
2) zadziala tylko jezeli WAN masz z dhcp.
Router: Unifi Cloud Gateway Max
Switch: Netgear MS510TXPP
Switch: Unifi USW-Flex-Mini - szt. 2
Wi-Fi: Unifi U6-Lite - szt. 2
Proxmox VE: i5-13400T, 64GB RAM, 2x 512GB NVMe, 3x 2TB SSD, Intel X710-DA2 SFP+
VM #1: Synology SA6400
VM #2: Debian, WWW
VM #3: Home Assistant OS
|
|
|
|
kobjac |
Dodano 04-12-2009 18:07
|
User
Posty: 111
Dołączył: 11/10/2006 14:54
|
Cytat shibby napisał/a:
pewnie bedzie dzialal ale
1) puszcza tylko jeden ping, troche malo
2) zadziala tylko jezeli WAN masz z dhcp.
A jak to przerobić żeby więcej pingów poszło bo w przypadku moim czyli łącza od UPC to mam z dhcp, ale fakt przydało by się więcej pingów. Dzięki
Gwarek
|
|
|
|
shibby |
Dodano 05-12-2009 09:01
|
SysOp
Posty: 17110
Dołączył: 15/01/2009 20:30
|
zwiekszyc zmienna PACKATS powinno dzialac.
Router: Unifi Cloud Gateway Max
Switch: Netgear MS510TXPP
Switch: Unifi USW-Flex-Mini - szt. 2
Wi-Fi: Unifi U6-Lite - szt. 2
Proxmox VE: i5-13400T, 64GB RAM, 2x 512GB NVMe, 3x 2TB SSD, Intel X710-DA2 SFP+
VM #1: Synology SA6400
VM #2: Debian, WWW
VM #3: Home Assistant OS
|
|
|
|
kobjac |
Dodano 10-12-2009 00:43
|
User
Posty: 111
Dołączył: 11/10/2006 14:54
|
Wrzuciłem to w init i niestety nie działa, może jakieś mądre głowy mają pomysł aby to ruszyło? Niestety nie znam się na skryptach Dzięki
Gwarek
|
|
|
|
shibby |
Dodano 10-12-2009 08:07
|
SysOp
Posty: 17110
Dołączył: 15/01/2009 20:30
|
edytowane na szybko, nie testowane ale powinno dzialac, sprawdz
Cytat #!/bin/sh
INTERVAL=10
PACKETS=5
ME=`basename $0`
RUNNING=`ps | awk '/'"$ME"'/ {++x}; END {print x+0}'`
if [ "$RUNNING" -gt 3 ]; then
echo "Another instance of \"$ME\" is running"
exit
fi
while sleep $INTERVAL
do
TARGET=`ip route | awk '/default via/ {print $3}'`
RET=`ping -c $PACKETS $TARGET 2> /dev/null | awk '/packets received/ {print $4}'`
if [ "$RET" -ne "$PACKETS" ]; then
echo Ping failed...
service wan stop
echo Waiting 30 s ...
service wan start
else
echo Network is up via $TARGET
fi
done
odpal w konsoli i sprawdz czy zrestartowal polaczenie. jak beda jakies bledy to je wklej.
Router: Unifi Cloud Gateway Max
Switch: Netgear MS510TXPP
Switch: Unifi USW-Flex-Mini - szt. 2
Wi-Fi: Unifi U6-Lite - szt. 2
Proxmox VE: i5-13400T, 64GB RAM, 2x 512GB NVMe, 3x 2TB SSD, Intel X710-DA2 SFP+
VM #1: Synology SA6400
VM #2: Debian, WWW
VM #3: Home Assistant OS
|
|
|
|
kobjac |
Dodano 10-12-2009 09:39
|
User
Posty: 111
Dołączył: 11/10/2006 14:54
|
nie kumam co to znaczy odpal w jakiejś konsoli. Mam wrt54gl z t. 1.25 i niestety nie wiem gdzie to się tam testuje. Wrzuciłem to w init i czas pokaże. Dzięki
Gwarek
|
|
|
|
shibby |
Dodano 10-12-2009 14:27
|
SysOp
Posty: 17110
Dołączył: 15/01/2009 20:30
|
jak juz to predzej w sheduler custom. wkoncu to ma sie co jakies czas odpalac i sprawdzac prawda?
Router: Unifi Cloud Gateway Max
Switch: Netgear MS510TXPP
Switch: Unifi USW-Flex-Mini - szt. 2
Wi-Fi: Unifi U6-Lite - szt. 2
Proxmox VE: i5-13400T, 64GB RAM, 2x 512GB NVMe, 3x 2TB SSD, Intel X710-DA2 SFP+
VM #1: Synology SA6400
VM #2: Debian, WWW
VM #3: Home Assistant OS
|
|
|
|
kobjac |
Dodano 10-12-2009 20:10
|
User
Posty: 111
Dołączył: 11/10/2006 14:54
|
prawda dzięki będę testował
Gwarek
|
|
|
|
westmen3 |
Dodano 11-12-2009 21:11
|
User
Posty: 16
Dołączył: 13/11/2009 17:17
|
jednak nie działa ten skrypt, akurat dzisiaj to sprawdziłem modem dostał inny ades a tomato go nie pobrał.Wkleiłem go w scheduler custom idałem sprawdzanie co 1min
Edytowany przez westmen3 dnia 11-12-2009 21:18
|
|
|
|
kobjac |
Dodano 12-12-2009 22:16
|
User
Posty: 111
Dołączył: 11/10/2006 14:54
|
u mnie tez niestety nie działa
Gwarek
|
|
|
|
westmen3 |
Dodano 13-12-2009 13:50
|
User
Posty: 16
Dołączył: 13/11/2009 17:17
|
jak to zrobić żeby skrypt działał poprawnie, często mnie nie ma w domu i ludzie są bez neta |
|
|
|
kobjac |
Dodano 13-12-2009 14:20
|
User
Posty: 111
Dołączył: 11/10/2006 14:54
|
Cytat westmen3 napisał/a:
jak to zrobić żeby skrypt działał poprawnie, często mnie nie ma w domu i ludzie są bez neta
No mam ten sam problem ja jak narazie wpakowałem w scheduler reconnect co godzinę i jest to jakieś rozwiązanie ale pewnie skrypt by był lepszy. Niestety przy łączu z UPC często zmieniają adres IP i router juz tego nie odświeża.
WRT54GL Tomato 1.25
Gwarek
|
|
|