无密码自动远程登陆和无密码自动远程复制

版权声明:本文系作者原创。未经许可,不得转载。

用expect实现无密码自动远程登陆。代码如下:
cmoslogin.sh

#!/usr/bin/expect -f

set timeout 30
spawn ssh [email protected]
expect "[email protected]'s password:"
send "system\r"
expect "]*"
interact

用expect实现无密码自动远程复制单个文件,再调用该程序,实现无密码自动远程复制多个文件。代码如下:

cmoscopysingle.sh

#!/usr/bin/expect -f

set timeout 30
set cmosfile [lindex $argv 0] 
spawn scp $cmosfile [email protected]:/home/user/
expect "[email protected]'s password:"
send "system\r"
expect "]*"


cmoscopy.sh

#!/bin/bash

if [ $# -eq 0 ]       ##判断参数是否存在
then
    exit                     ##不存在退出
else   
    for i in $*             ##存在话,取参数放入a中循环
    do
    cmoscopysingle $i
    done
fi

使用方式如下:
./cmoscopy.sh *.cpp    //将当前目录下所有的cpp文件上传
./cmoslogin.sh   //登陆

你可能感兴趣的:(shell,expect)