13 个解决方案
#1
直接建立信任关系,scp不输密码,然后scp写入脚本就行了
配置scp不输入密码:http://blog.163.com/fancy_duan/blog/static/97006820119961024749/
配置scp不输入密码:http://blog.163.com/fancy_duan/blog/static/97006820119961024749/
#2
能通过java代码进行建立信任关系吗?
#3
就是一个命令,在A上生成私钥和公钥,把公钥拷到B上,以后A通过ssh/scp等方式访问B就可以不输入密码了,相当于是环境配置吧;
是shell的一个命令完成的,难道你要用java来实现这个功能?
是shell的一个命令完成的,难道你要用java来实现这个功能?
#4
http://blog.csdn.net/mr_ringht/article/details/8800926
你可以看下,利用expect实现交互式脚本,话说我也经常这么做....至于具体配置root密码等等,你可以修改程序加上配置文本就可以实现.
#5
我尝试了写一个expect脚本,但在执行时报 相应的 expect 命令不存在,应该是需要安装expect插件吧,但这对环境依赖太强了,如果没装插件,岂不是就会报错
#6
我去...你们的环境管理员不装吗?我们这里无论是linux还是unix都有那个插件的...你要不试试看是不是你路径没指过去?按说linux环境安装的时候管理员都会安装tcl包的吧///
#7
我尝试了写一个expect脚本,但在执行时报 相应的 expect 命令不存在,应该是需要安装expect插件吧,但这对环境依赖太强了,如果没装插件,岂不是就会报错
Linux系统一般会默认安装expect,但是Solaris、HP-UX、AIX等一般没有安装。
#8
尝试写了一个shell脚本
但是在执行的时候还是要手工输入密码,自动输入不是用echo这个命令操作吗?
MYNAME=`whoami`
if [ "-${MYNAME}" != "-"root ]; then
echo "i am not root!"
{
sleep 1
echo "$6"
sleep 2
echo "scp $1 $2@$3:/home"
sleep 2
echo "$4"
sleep 2
echo "exit"
} | su "$5"
else
echo "i am root!"
{
{
sleep 2
echo "scp $1 $2@$3:/home"
sleep 2
echo "$4"
sleep 2
echo "exit"
} | su "$5"
}
fi
但是在执行的时候还是要手工输入密码,自动输入不是用echo这个命令操作吗?
#9
但是在执行的时候还是要手工输入密码,自动输入不是用echo这个命令操作吗?
如果管道可以实现输入密码,大家就不会让你用expect了。
#10
建议配置信任关系.
#11
但是在执行的时候还是要手工输入密码,自动输入不是用echo这个命令操作吗?
如果管道可以实现输入密码,大家就不会让你用expect了。
啊,管道不可以实现输入密码功能?
#12
但是在执行的时候还是要手工输入密码,自动输入不是用echo这个命令操作吗?
如果管道可以实现输入密码,大家就不会让你用expect了。
因为当前环境是按照操作手册搭建的,而且关联的远程机器IP是变换的 从文件中获取的
#13
#!/bin/sh
#!/usr/bin/expect
exp()
{
expect <<EOF
spawn scp $1 $2@$3:/home
expect {
"*assword:" {
send "$4\n";exp_continue
}
eof{
exit
}
}
EOF
}
if [ "-${MYNAME}" != "-"root ]; then
echo "i am not root!"
{
sleep 1
echo "$6"
sleep 2
exp $1 $2 $3 $4
echo "exit"
} | su "$5"
else
echo "i am root!"
{
sleep 2
exp $1 $2 $3 $4
echo "exit"
} | su "$5"
fi
当前脚本这样写,虽然实现最终功能,但是在java调试调用的时候,发现输出这些错误信息
Password: bash: line 1: spawn: command not found
bash: line 2: Password:: command not found
bash: line 3:
201210241443P_mc_F1_S3_LA.zip: command not found
#1
直接建立信任关系,scp不输密码,然后scp写入脚本就行了
配置scp不输入密码:http://blog.163.com/fancy_duan/blog/static/97006820119961024749/
配置scp不输入密码:http://blog.163.com/fancy_duan/blog/static/97006820119961024749/
#2
直接建立信任关系,scp不输密码,然后scp写入脚本就行了
配置scp不输入密码:http://blog.163.com/fancy_duan/blog/static/97006820119961024749/
能通过java代码进行建立信任关系吗?
#3
就是一个命令,在A上生成私钥和公钥,把公钥拷到B上,以后A通过ssh/scp等方式访问B就可以不输入密码了,相当于是环境配置吧;
是shell的一个命令完成的,难道你要用java来实现这个功能?
是shell的一个命令完成的,难道你要用java来实现这个功能?
#4
http://blog.csdn.net/mr_ringht/article/details/8800926
你可以看下,利用expect实现交互式脚本,话说我也经常这么做....至于具体配置root密码等等,你可以修改程序加上配置文本就可以实现.
#5
http://blog.csdn.net/mr_ringht/article/details/8800926
你可以看下,利用expect实现交互式脚本,话说我也经常这么做....至于具体配置root密码等等,你可以修改程序加上配置文本就可以实现.
我尝试了写一个expect脚本,但在执行时报 相应的 expect 命令不存在,应该是需要安装expect插件吧,但这对环境依赖太强了,如果没装插件,岂不是就会报错
#6
http://blog.csdn.net/mr_ringht/article/details/8800926
你可以看下,利用expect实现交互式脚本,话说我也经常这么做....至于具体配置root密码等等,你可以修改程序加上配置文本就可以实现.
我尝试了写一个expect脚本,但在执行时报 相应的 expect 命令不存在,应该是需要安装expect插件吧,但这对环境依赖太强了,如果没装插件,岂不是就会报错
#7
我尝试了写一个expect脚本,但在执行时报 相应的 expect 命令不存在,应该是需要安装expect插件吧,但这对环境依赖太强了,如果没装插件,岂不是就会报错
Linux系统一般会默认安装expect,但是Solaris、HP-UX、AIX等一般没有安装。
#8
尝试写了一个shell脚本
但是在执行的时候还是要手工输入密码,自动输入不是用echo这个命令操作吗?
MYNAME=`whoami`
if [ "-${MYNAME}" != "-"root ]; then
echo "i am not root!"
{
sleep 1
echo "$6"
sleep 2
echo "scp $1 $2@$3:/home"
sleep 2
echo "$4"
sleep 2
echo "exit"
} | su "$5"
else
echo "i am root!"
{
{
sleep 2
echo "scp $1 $2@$3:/home"
sleep 2
echo "$4"
sleep 2
echo "exit"
} | su "$5"
}
fi
但是在执行的时候还是要手工输入密码,自动输入不是用echo这个命令操作吗?
#9
但是在执行的时候还是要手工输入密码,自动输入不是用echo这个命令操作吗?
如果管道可以实现输入密码,大家就不会让你用expect了。
#10
建议配置信任关系.
#11
但是在执行的时候还是要手工输入密码,自动输入不是用echo这个命令操作吗?
如果管道可以实现输入密码,大家就不会让你用expect了。
啊,管道不可以实现输入密码功能?
#12
但是在执行的时候还是要手工输入密码,自动输入不是用echo这个命令操作吗?
如果管道可以实现输入密码,大家就不会让你用expect了。
因为当前环境是按照操作手册搭建的,而且关联的远程机器IP是变换的 从文件中获取的
#13
#!/bin/sh
#!/usr/bin/expect
exp()
{
expect <<EOF
spawn scp $1 $2@$3:/home
expect {
"*assword:" {
send "$4\n";exp_continue
}
eof{
exit
}
}
EOF
}
if [ "-${MYNAME}" != "-"root ]; then
echo "i am not root!"
{
sleep 1
echo "$6"
sleep 2
exp $1 $2 $3 $4
echo "exit"
} | su "$5"
else
echo "i am root!"
{
sleep 2
exp $1 $2 $3 $4
echo "exit"
} | su "$5"
fi
当前脚本这样写,虽然实现最终功能,但是在java调试调用的时候,发现输出这些错误信息
Password: bash: line 1: spawn: command not found
bash: line 2: Password:: command not found
bash: line 3:
201210241443P_mc_F1_S3_LA.zip: command not found