Назад | Перейти на главную страницу

Скрипт для запуска vpnc и введите пароль

Мое соединение vpnc обрывается довольно часто, и мой друг создал скрипт, который запускает vpnc и запускает другой «охранный» скрипт, который, в свою очередь, каждую минуту проверяет, подключен ли vpnc, и подключает его, если это не так.

Разница между мной и моим другом в том, что у него статический пароль, и я использую небольшое устройство для генерации нового пароля каждый раз. Запуск сценария защиты не проблема zenity чтобы отобразить небольшое окно для ввода пароля, проблема в том, как передать этот пароль в vpnc?

Я пробовал здесь-документ, например:

PASS=`zenity --entry --title="VPN Password" --text="Enter your password:"`
sudo vpnc $SCRIPTPATH/vpnc.conf<<<$PASS

Но это не работает. Vpnc продолжает запрашивать пароль в командной строке. Как я могу его скормить паролем в скрипте?

Более подробно это отрывок из сценария:

#!/usr/bin/expect -f

set password [lrange $argv 1 1]
set timeout -1
match_max 100000
spawn /usr/sbin/vpnc --local-port 0 vpnc.conf
expect {        
        "Enter password for" {
                send -- "$password\r"
        }
}
send -- "\r"
interact

Тогда вы можете запустить его как

cat .passwd | xargs -n 1 expect-vpnc.exp

И ваши файлы .passwd содержат только одну строку с паролем

Вы можете использовать "ожидать", чтобы дождаться приглашения "Пароль:" и ввести $ PASS.

http://linux.die.net/man/1/expect