ssh2扩展执行远程登录命令以及执行多个命令

简介

使用ssh2模块实现远程登录执行命令:

使用php ssh2模块可以在程序中远程执行命令,可以编写一些简单的脚本工具,实现集中管理

安装

1,安装libssh2库

从 http://www.libssh2.org/ 下载源代码安装即可。

2,安装ssh2模块

从 http://pecl.php.net/package/ssh2 下载源代码包,安装步骤:

/usr/local/php/bin/phpize

./configure --with-ssh2 && make

cp .libs/ssh2.so /data/php/lib/php/extensions/no-debug-non-zts-20060613/

修改 php.ini 增加 extension=ssh2.so

3,示例

$conn = ssh2_connect('192.168.1.2',22);

ssh2_auth_password($conn,usesrname,password);

$stream = ssh2_exec($conn, '/usr/local/bin/php -i');

stream_set_blocking($stream,true);

echo (stream_get_contents($stream));


$stream = ssh2_exec($conn,'ls');

stream_set_blocking($stream,true);

echo (stream_get_contents($stream));


ssh2的使用方式:

$connect=ssh2_connect("192.168.1.2",22);

ssh2_auth_password($connect,user,pass);

$stream=ssh2_exec($connect, "ls /home");

stream_set_blocking($stream, true);

$output = stream_get_contents($stream);

fclose($stream);

echo $output ;


4,ssh2执行多个命令

第一个命令:
$ stream = ssh2_exec($ connection,'config global') ; 

第二个命令:
$ stream = ssh2_exec($ connection,'get hardware cpu'); 

这样做:

 $ stream = ssh2_exec($ connection,'command1; command2'); 
可以考虑使用 ssh2_shell() 去解决
或者这样:
ssh2_exec(cd /tmp && tar -zvxf   XXXYYY.x86_64.tgz)

参考链接:
http://www.jackxiang.com/post/3790/

阅读更多
个人分类: Linux
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭