LinuxÒÁµéÔ°ÂÛ̳'s Archiver

pink_tulip ·¢±íÓÚ 2006-4-9 12:34

¡¾ÇóÖú¡¿ÇëÎÊÈçºÎ°ÑÒªÊäÈëµÄÃÜÂë±£´æÔÚbash½Å±¾À

ÎҵĽű¾Éæ¼°sshÔ¶³Ì²Ù×÷
ÿдһ¸össhÃüÁîÔÚÖ´ÐÐʱ¶¼ÒªÊäÈëÃÜÂ룬ºÜÂé·³¡£
ÎÒÏ£ÍûÄܰÑÃÜÂë±£´æÔڽű¾Àï±ÜÃâÿ´ÎÊäÈ루ÃÜÂëÊÇ¿ÉÒÔ¹«¿ªµÄ£©

ÇëÎÊÓ¦¸ÃÔõô×ö£¿ÒÖ»òsshÃüÁîÀïÓÐûÓб£´æÃÜÂëµÄijÖÖ·½·¨ÄØ£¿


лл

li-jiahuan ·¢±íÓÚ 2006-4-9 19:45

Ò²Ðí¿ÉÓÃssh-agent?

dearvoid ·¢±íÓÚ 2006-4-9 20:12

·½·¨ 1. ÀûÓà expect£¬±¾°æ¾«»ªÌùÀïÃæÓÐÒ»¸öÀý×Ó¿ÉÒԲο¼Ò»ÏÂ
·½·¨ 2. ÀûÓà ssh µÄ public-key ÈÏÖ¤·½Ê½

pink_tulip ·¢±íÓÚ 2006-4-9 22:45

1¡£expectÊDz»ÊÇÒªÁíÍâ°²×°£¿
2¡£public±ØÐë»ñȡԶ³ÌµÄ¹«Ô¿£¬±È½ÏÂé·³Ò²¡£

dearvoid ·¢±íÓÚ 2006-4-9 23:01

Ò»°ãµÄ Linux distribution ¶¼°üº¬ expect£»Ò²¿ÉÒÔÏÂÔØ source code ×Ô¼º±àÒë¡¢°²×°

pink_tulip ·¢±íÓÚ 2006-4-10 00:42

ÕÒµ½ÁË£¬Ð»Ð»¸÷λ

pink_tulip ·¢±íÓÚ 2006-4-10 15:53

ÇëÎÊÄܲ»ÄܰÑexpect½Å±¾Ç¶Ì×ÔÚbash½Å±¾À¾ÍÊÇдÔÚÒ»¸öÎļþÀï

dearvoid ·¢±íÓÚ 2006-4-10 16:04

[code][color=blue]-(user@host:tty)-(tmp)-
[3903 0] $ [/color]cat exp.sh
#!/bin/bash

expect << END
send_user "Hello, world\\n"
END
[color=blue]-(user@host:tty)-(tmp)-
[3903 0] $ [/color]./exp.sh
Hello, world
[color=blue]-(user@host:tty)-(tmp)-
[3903 0] $ [/color][/code]

pink_tulip ·¢±íÓÚ 2006-4-10 16:59

[font=Arial]»¹ÊDz»Ì«Ã÷°×¡£
±ÈÈçÕâ¸öÀý×ÓÓ¦µ±Ôõô¸ÄÔ죿[/font]

[font=Arial][/font]

[CODE]  

#!/bin/bash
ip="xxx.xxx.xxx.xxx"

password="xxxxxx"

ssh $ip
#ÔÚÕâÀïÈçºÎÓÃexpect°ÑpasswordµÄÄÚÈÝÊäÈë

#ÏÂÃæÊÇÆäËûµÄ´úÂë
.....
.....

[/CODE]

dearvoid ·¢±íÓÚ 2006-4-10 17:13

²»Ã÷°×ÄúµÄÒâ˼, ÄÜ·ñ¸øÎÒÍêÕûµÄ example?

pink_tulip ·¢±íÓÚ 2006-4-10 17:27

[code]
#!/bin/sh

menu()
{
        echo " Choose your operation:"
        echo " 1.transfer a file to remote"
        echo " 2.Remove a remote file"
        echo " 3.Other operation"
        echo " 4.Exit"
}

login()
{
        read -p "Enter remote IP:" ip
        read -p "Enter remote password:" password
}

while :;
do
        menu
        read -p "Enter choice: " choice
        case $choice in
                1)
                        echo "transfer a file to remote"
                        login

                        #ÀûÓÃssh´«ÊäÒ»¸öÎļþ
                        ;;
                2)
                        echo "Remove a remote file"
                        login
                        #ÀûÓÃsshɾ³ýÔ¶³ÌµÄij¸öÎļþ
                        ;;
                3)
                        login
                        #ÀûÓÃsshÔ¶³ÌÖ´ÐÐÃüÁî
                        ;;
                4)
                        exit 0
                        ;;
                *)
                        echo " Ivalid choice!!!"
        esac
done
[/code]

dearvoid ·¢±íÓÚ 2006-4-10 22:04

ÔÙ²»Ã÷°×¾Íû°ì·¨ÁË£º[code][color=blue]-(user@host:tty)-(tmp)-
[1066 0] $ [/color]cat ssh.sh
#!/bin/bash
# vi:set ts=8 sw=4 et sta:
#
# Author: Wang Jian (dearvoid AT 263 DOT net)
#
# $Date: 2006-03-31 23:05:23 +0800 (Fri, 31 Mar 2006) $
# $HeadURL: svn://apple/clark/void/trunk/bash/template.sh $
# $Revision: 445 $
#

expect << END
set timeout 15
spawn ssh apple date
set bTimeout 0
expect {
    "yes/no" {
        send "yes\r"
        exp_continue
    }

    -nocase "password:" {
        send "MyPassword\r"
        expect {
            eof {
            }

            timeout {
                set bTimeout 1
            }
        }
    }

    timeout {
        set bTimeout 1
    }
}

if \$bTimeout {
    send_user "\\n>>> Error: timeout\\n"
    exit 1
} else {
    exit 0
}
END
[color=blue]-(user@host:tty)-(tmp)-
[1066 0] $ [/color]./ssh.sh
spawn ssh apple date
Password:
Mon Apr 10 21:57:49 CST 2006
[color=blue]-(user@host:tty)-(tmp)-
[1066 0] $ [/color]> ~/.ssh/known_hosts
[color=blue]-(user@host:tty)-(tmp)-
[1066 0] $ [/color]./ssh.sh
spawn ssh apple date
The authenticity of host 'apple (192.168.2.1)' can't be established.
RSA key fingerprint is 14:93:87:f5:e8:95:7e:65:c3:d2:a6:2d:c6:61:2d:9c.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'apple,192.168.2.1' (RSA) to the list of known hosts.
Password:
Mon Apr 10 21:58:08 CST 2006
[color=blue]-(user@host:tty)-(tmp)-
[1066 0] $ [/color][/code]

pink_tulip ·¢±íÓÚ 2006-4-11 09:58

Á˽âÁË£¬expect×îºó±ØÐëµÃexit¡£

лл³¬°æ

dearvoid ·¢±íÓÚ 2006-4-11 10:05

[QUOTE=pink_tulip]Á˽âÁË£¬expect×îºó±ØÐëµÃexit¡£

лл³¬°æ[/QUOTE]
exit ²»ÊDZØÐëµÄ :( ¸ú Shell¡¢C/C++¡¢Perl¡¢Python µÈÓïÑÔÒ»Ñù£¬³ÌÐòĩβ¿ÉÒÔûÓÐ explicit µÄ exit

pink_tulip ·¢±íÓÚ 2006-4-12 11:08

[QUOTE=dearvoid]exit ²»ÊDZØÐëµÄ :( ¸ú Shell¡¢C/C++¡¢Perl¡¢Python µÈÓïÑÔÒ»Ñù£¬³ÌÐòĩβ¿ÉÒÔûÓÐ explicit µÄ exit[/QUOTE]

sorry£¬·¢ÏÖÊÇÁíÒ»¸öÎÊÌâ¡£

expect  {     #ÕýÈ·

expect{       #´íÎó

expect
{                     #´íÎó

pink_tulip ·¢±íÓÚ 2006-4-12 11:14

ºÜ²»Ï°¹ß¡£¡£

pink_tulip ·¢±íÓÚ 2006-4-12 12:30

END»¹±ØÐë¶¥¸ñд£¬²»ÄÜËõ½ø£¬°æÊ½ºÃÄÑ¿´

dearvoid ·¢±íÓÚ 2006-4-12 12:37

[QUOTE=pink_tulip]ºÜ²»Ï°¹ß...

END»¹±ØÐë¶¥¸ñд£¬²»ÄÜËõ½ø£¬°æÊ½ºÃÄÑ¿´[/QUOTE]½¨Òéµ÷ÕûÒ»ÏÂÐÄ̬ :)

pink_tulip ·¢±íÓÚ 2006-4-12 16:43

d°æÄܽâÊÍÏÂ<< END.......ENDµÄº¬Òåô£¿

»¹ÓÐ
[code]
expect << END
......
END
[/code]
Õâ¶Î´úÂëΪɶ²»ÄÜ·ÅÔÚÒ»¸öÑ­»·ÀïÄØ£¿Like this
[code]
while :;
do
        expect << END
                ..............

END
done
[/code]
syntax error: unexpected end of file

li-jiahuan ·¢±íÓÚ 2006-4-12 18:18

´«ËµÖеÄHERE_DOCUMENT ?

Ò³: [1] 2

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.