LINUX.ORG.RU
ФорумAdmin

[adsl][script] авторестарт

 ,


0

0

FreeBSD 6.4

вобщем делаю рестартилку для адсл мопеда dlink 2005U

наткнулся на скрипт http://chinmaykamat.blogspot.com/2008/11/script-to-restart-adsl-modem.html

#!/usr/bin/env python
#
# This script will ping to google.bg and if network is
# unreachable it will connect to the modem and reboot it.

import os
import commands
import pexpect


def adsl_reboot():
p = pexpect.spawn('telnet 192.168.1.1')

p.expect('Login: ')
p.sendline('admin') # Sending Username.

p.expect('Password: ')
p.sendline('admin') # Sending Password.
# print "loggedin",
p.expect('-> ')
p.sendline('12') # Sending command to the shell.

# p.expect('Save current configuration and reboot? Confirm [1-yes,2-no] ==> ')
p.sendline('1')

os.system('zenity --notification --text="The modem has been rebooted."')
# Show an icon in the notification area


result = commands.getoutput("ping -c 1 google.bg")
#if result.find("Unreachable") == -1:
# result = True
# print 'Connected!'
#else:
result = False
print 'Not connected! - Rebooting the modem.'

if result == False:
adsl_reboot()


#
# This was my first script.
# Author: Boris Bolgradov
#
# Big thanks to: walkerk, days_of_ruin and Psykotik!

ругается на

[root@mGate /home]# ./restart_adsl.py
  File "./restart_adsl.py", line 8
    p = pexpect.spawn('telnet 192.168.1.1')
    ^
IndentationError: expected an indented block
[root@mGate /home]#

в чем прикол? ОС frebsd 6.4

в питоне не силён =(

★★

c этим разобрался
другая проблема, болие серьезная =)

[root@mGate /home]# ./restart_adsl.py
Traceback (most recent call last):
File "./restart_adsl.py", line 5, in <module>
import pexpect
ImportError: No module named pexpect

kam ★★
() автор топика

>IndentationError: expected an indented block

Отсутпы-то кто расставлять будет? Для питона это обязательно.

Demon37 ★★★★
()
Ответ на: комментарий от kam

>import pexpect

>ImportError: No module named pexpect

установи модуль python-pexpect или как он у вас там в бзде называется.

Demon37 ★★★★
()

Не совсем понятно, зачем тут городить python с expect'ом

#!/bin/sh
(
    sleep 1
    echo 'admin'
    sleep 1
    echo 'admin'
    sleep 1
    echo '12'
    sleep 1
    echo '1'
) nc 192.168.1.1 23

Если всё-таки хочется совсем правильно, то можно взять обычный CLI expect,
но пайтон тут опять не нужен =).

Deleted
()
Ответ на: комментарий от Deleted

>#!/bin/sh
>(

> sleep 1

> echo 'admin'

> sleep 1

> echo 'admin'

> sleep 1

> echo '12'

> sleep 1

> echo '1'

>) nc 192.168.1.1 23


Согласен, только:
...
echo '1'
) | nc 192.168.1.1 23

gserg ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.