Мое соединение 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.