zssh이라는 멋진 도구가있어서 lszrz
유틸리티를 사용하여 기존 ssh 연결을 통해 zmodem 를 사용하여 파일을 쉽게 전송할 수 있습니다. 그것은 놀랍게도 편리하지만 ... expect
을 사용하여 똑같은 것을 성취 할 수 있어야한다고 생각합니다.ZModem을 ssh를 통해 예상대로 구동하도록 도와주세요.
#!/usr/bin/expect -f
spawn ssh $argv
set ssh_spawn_id $spawn_id
send_user "ssh is: $ssh_spawn_id\n"
interact -o "\030B0000" {
send_user "\nStarting zmodem receive.\n"
spawn rz -v
set rz_spawn_id $spawn_id
send_user "rz is: $rz_spawn_id\n"
while {1} {
expect {
eof break
-i $rz_spawn_id -re .+ {
send -raw -i $ssh_spawn_id $expect_out(buffer)
}
-i $ssh_spawn_id -re .+ {
send -raw -i $rz_spawn_id $expect_out(buffer)
}
}
}
send_user "\nFinished zmodem receive.\n"
set spawn_id $ssh_spawn_id
}
이것은 ZRQINIT
프레임을 본 후에 rz
을 시작하고 ssh 세션에 rz
을 연결하지만 분명히 작동하지 않습니다. rz
메시지 :
Retry 0: Bad CRCe.**B0100000023be50
Retry 0: Bad CRC**B0600000023d984
Retry 0: Bad CRC**B0600000023d984
... 등등.
이 방법을 사용할 수 있습니까? 감사!
이미 ssh를 사용하고 있다면 궁금합니다. scp로 파일을 전송하지 않으시겠습니까? –
대부분 (a) 나는 더 나은 것을 이해하려고 노력하는 데 관심이 있습니다. (b) scp를 사용하려면 두 번째 연결이 필요합니다. 쉽지 않을 수도 있습니다 (예 : 바탕 화면과 리모컨 사이에 여러 홉이있는 경우 * 기존 * 채널을 통해 파일을 전송할 수 있다는 것은 대단히 편리합니다.) – larsks