linux下用scp命令在两个服务器之间传输文件,利用php_scp函数进行文件传输

时间:2021-10-24 18:03:00

在linux下利用scp进行文件传输,

从服务器下载文件

scp username@servername:/path/filename  /path/filename

上传本地文件到服务器

scp /path/filename username@servername:/path/filename

从服务器下载整个目录

scp -r username@servername:remote_dir/  /path/

上传目录到服务器      

scp  -r /dir username@servername:remote_dir

以上操作在执行时都会提示你输入密码,输入密码后就会成功执行。

但是这些只适合在操作linux服务器时使用,如何在程序中执行呢?

在PHP就用到了php_scp_send和php_scp_revc函数

php_scp_send是向另一个服务器传输文件,php_scp_revc则是下载文件。

这两个函数要结合php_ssh2组件使用。

$ssh2 = ssh2_connect($ssh_host, $ssh_port);  //先登陆SSH并连接,具体参照php_ssh2连接

//$local_file为本地文件, $remote_file为远程文件
//本地传输文件到远程服务器
$stream=ssh2_scp_send($ssh2, $local_file, $remote_file, 0644);
默认权限为0644,返回值为bool值,true或false. //从远程服务器下载文件
$stream=ssh2_scp_revc($ssh2, $remote_file, $local_file);
//返回值为返回值为bool值,true或false.