用Net::SSH::Perl远程连接,想用再用screen命令,在新的screen里面运行命令, my ($out) = $ssh->cmd('screen'); 遇到报错:Must be connected to a terminal. 请问大家怎么解决的呢?先谢谢了昂~~~~
by ununique007 - Perl - 2011-09-10 10:47:46 阅读(3202) 回复(6)
host=`mysql -u$user -p$pass -D $db -e "select host from user;"` 这句话貌似只能连接本地的 而且他也没有指出来到底连得是本地的还是远程的啊?
这个脚本: [code] #!/bin/sh RESULT=`ps aux |grep ssh |grep localhost |grep 192.168.1.1 |awk '{print $16}'` if [ -z $RESULT ] then /usr/bin/ssh -R 1234:localhost:22 -l root 192.168.1.1 fi [/code] 脚本判断是否有这个反向连接,如果有的话,RESULT的结果就是"192.168.1.1",如果没有则为空,如果RESULT变量为空则调用ssh命令连接到192.168.1.1上建立反向连接。 手工执行这个脚本没有问题,执行以后自动登录...
我使用net::ssh2模块,远程连接到主机上执行命令,如何获取出错信息。 如下: $ssh2->connect("$HostIp") ; my $chan = $ssh2->channel(); print $chan "su - aaa \n" ; print "Line: $_" while <$chan> ; aaa用户是不存在的,执行时,是报错的。 但是打印不出错误信息来。 如何处理。
有两台机器:A和B A:kernel version 2.4.22。 GNU bash, version 2.05b.0(1)-release (i386-redhat-linux-gnu) B:kernel version 2.6.18。 GNU bash, version 3.00.15(1)-release (i686-redhat-linux-gnu) 从A机器上使用脚本,通过SSH的方式调用B机器上的一个脚本。两台机器之间已经设置了信任关系,在连接过程中不需要输入密码。 在A上的调用脚本的code如下:[code]ssh root@$Machine_B_IP $PATH/$SCRIPT_NAME[/code]在B上执...