php scp跨服器拷贝文件到sftp

一般要装php的ssh2扩展,比较麻烦。所以转念一想,为什么不用我们经常用的scp。但是scp跨服务器拷贝需要输入密码,这里就用到了一个工具试试sshpass,可以指定密码。

1、工具安装

ubuntu安装:

sudo apt-get install sshpass

mac安装:

试了brew一直报错,这里用源码安装。

下载:

wget http://sourceforge.net/projects/sshpass/files/sshpass/1.05/sshpass-1.05.tar.gz 

解压:

tar xvzf sshpass-1.05.tar.gz

进入安装包:

cd sshpass-1.05

编译安装:

./configure
make&&make install

装完之后通过which sshpass找到路径

我这边路径是:/usr/local/bin/sshpass

配置完成之后就可以在php代码里面使用

exec('/usr/local/bin/sshpass -p your_password scp /deployment/1.txt your_name@your_host:your_path/1.txt');

注意这边的路径一定要用绝对路径,相对路径会报错。

对了还有密码不要放在代码里面,如果是laravel框架的话,要放在env中。

上一篇:Shell简单参考入门程序


下一篇:Anaconda管理虚拟环境