Как скопировать файл с удаленного хоста на локальный с помощью tcl-Ожидайте - PullRequest
2 голосов
/ 23 августа 2011

Здесь я устанавливаю соединение между двумя компьютерами, используя telnet, и на удаленном хосте я создаю файл с именем «file.txt» и сохраняю результат выполнения команды «ls» в файле file.txt.Теперь мне нужно отправить файл на локальный хост.я не знаю как это сделать.Любой, кто знает это, пожалуйста, помогите мне здесь.

#!/usr/local/bin/expect 
spawn telnet <machine ip> 
expect "login:" 
send "<username>\n" 
expect "Password:" 
send "<password>\n" 
expect "bash"
send " ls > file.txt\r "
expect "bash"
send " cat file.txt \r "
expect "bash"
send " command for copying file to the localhost computer\r"
expect "bash"
send "exit\r"

1 Ответ

3 голосов
/ 24 августа 2011

Настоятельно рекомендуется использовать ssh и scp для этой задачи.

#!/usr/local/bin/expect

### Factor these out
set user <username>
set pass <password>
set host <machineIP>

### Get the file list into a file remotely
spawn ssh $user@$host sh -c {ls -1 >file.txt}
expect {
    "Password:" {
        send "$pass\r"
        exp_continue
    }
    eof {
        close
    }
}
### Copy the file to the local machine
spawn scp $user@${host}:file.txt .
expect {
    "Password:" {
        send "$pass\r"
        exp_continue
    }
    eof {
        close
    }
}
...