У меня возникли проблемы с сценарием linux ожидать. У меня есть компьютер A, у которого есть только подключение к локальной сети, а другой компьютер B - в той же локальной сети, которая имеет подключение к Интернету. Я хочу написать скрипт, который может войти в компьютер B через ssh и загрузить файл и, наконец, использовать scp для переноса файла на компьютер A. И ниже мой сценарий.Как скачать файл через linux?
#!/bin/expect
set url [lindex $argv 0];
spawn ssh "[email protected]"
expect "password:"
send "passwd\n"
expect "Last login:"
send "cd tmp\n"
send "wget $url\n"
expect "saved"
send "scp * [email protected]:~/\n"
expect {
"yes/no" { send "yes\n"; exp_continue }
"password:" { send "passwd\n" }
}
expect "100%"
send "rm *\n"
send "exit\n"
Но теперь скрипт будет скопировать файл в A немедленно, пока не закончится wget. Является ли мой сценарий подходящим для этого? Если нет, что мне делать? Огромное спасибо.
У вас гораздо лучший ответ. Вероятно, вы ожидаете, что вы выбрали время. Устанавливайте таймаут -1 перед вызовом wget. –