Tilgin HG1311 modelli modemini (turkcell superonline’nın fiber Internet hizmeti için verdiklerinden biri) login olup da ilgili sayfalara girip de “Restart” düğmesine basıp modemi yeniden başlatma zahmetini çekmek istemeyenler aşağıdaki shell komutunu çalıştırarak panel login bilgilerini girerek otomatik olarak yeniden başlatabilirler.
Gereksinimler:
- curl paketi
- aşağıdaki modem-restart betik kodlarını modem-restart.sh adlı dosya oluşturarak içine yapıştırılmalı
- modem-restart.sh dosyası için çalıştırma izni verilmeli
Kullanımı:
./modem-restart.sh -h modem_ip -u login_user
Çalışma şekli:
developer@dev:~$ ./modem-restart.sh -h 192.168.1.1 -u admin Enter login password: % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 9675 0 9639 100 36 8707 32 0:00:01 0:00:01 --:--:-- 8730 % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 2134 0 2120 100 14 66677 440 --:--:-- --:--:-- --:--:-- 73103
İstenirse modem-restart-output dosyasından betik çıktıları incelenebilir.
modem-restart.sh betiği:
#!/bin/bash # author: Erman Gülhan # web site: blog.ermangulhan.com # date: 27.01.2013 # # Restarts the modem with the model "Tilgin HG1113". usage() { echo "Usage: $0 -h host -u loginuser" exit 1 } while getopts ":h:u:" opt; do case $opt in h)h=$OPTARG;; u)u=$OPTARG;; \?) echo "Invalid option: -$OPTARG" >&2 exit 1 ;; : ) echo "Option -$OPTARG requires an argument." >&2 exit 1 ;; esac done if test "$h" == "" then echo "Invalid host!" usage fi if test "$u" == "" then echo "Invalid login user!" usage fi echo "Enter login password: " read -s p if test "$p" == "" then echo "Invalid login password!" exit 1 fi curl -i -L -c vood_cookies --data "__user=$u&__pass=$p&__auth=login" $h > modem-restart-output && curl -i -L -b vood_cookies $h/tools/restart/ --data "__form=restart" >> modem-restart-output && rm -f vood_cookies
Betik teknik açıklama:
curl -i -L -c vood_cookies --data "__user=$u&__pass=$p&__auth=login" $h > modem-restart-output && curl -i -L -b vood_cookies $h/tools/restart/ --data "__form=restart" >> modem-restart-output && rm -f vood_cookies
- -i: çıktıya http header bilgilerini dahil eder
- -L: ilgili url’e istek sonrası eğer yönlendirme varsa buna izin verir
- -c vood_cookies: eğer istek yapılan sayfadan cookie geliyorsa bunu vood_cookies adlı dosyaya yazar (bu cookie dosyasını sonraki curl isteğinde kullanacağız)
- –data “__user=$u&__pass=$p&__auth=login”: ilgili değerler ile POST (application/x-www-form-urlencoded mime-type) isteği yapar
- $h: istek yapılacak olan url bilgisi (kullanıcının girdiği modem ip adresi)
- > modem-restart-output: adından da anlaşılacağı gibi betik standart çıktılarını modem-restart-output adlı dosyaya yazar
- -b vood_cookies: vood_cookies dosyasındaki cookie bilgilerini kullanarak ilgili istek yapılır
- $h/tools/restart/: istek yapılacak olan url
- –data “__form=restart”: bu değerler ile POST isteği yapılır
- >> modem-restart-output: bu dosyaya ikinci curl komut çıktısı eklenir
- rm -f vood_cookies: son olarak da vood_cookies dosyası silinir