Ubuntu下 使用sftp将文件同步到不同服务器
2012-08-23 15:29
330 查看
先说一下,应用的背景吧。
今天公司让我写段程序,让我将主服务器的配置文件同步到不同的服务器上去。研究了一会,
写出的代码如下:
配置文件config.inc.php部分内容:
同步程序的主要代码如下:
测试之前要确保系统有装相关扩展(如:libssh2)。
第一次写blog 。写下来这些东西算是做个备份吧,请大神们多多指教。
另外 程序中有一处不是很理解。
if(!copy($confPath, "ssh2.sftp://{$resSFTP}{$v['path']}_inc/class/Algorithm/{$configName}")) {
echo '同步配置文件失败';
}
这一段中 ssh2.sftp://{$resSFTP}{$v['path']}_inc/class/Algorithm/{$configName}"
重点是不太清楚为什么前面为什么要加 ssh2.sftp://{$resSFTP} 这么写的原理是什么? 希望看到这篇文章的大神能给解惑。谢谢
今天公司让我写段程序,让我将主服务器的配置文件同步到不同的服务器上去。研究了一会,
写出的代码如下:
配置文件config.inc.php部分内容:
'ServerGroup' => array( '192.168.0.240' => array( 'user' => 'root', 'pass' => 'sjgj2508', 'path' => '/var/www/html/', ), '192.168.0.244' => array( 'user' => 'root', 'pass' => 'sjgj2508', 'path' => '/var/www/html/', ), ),
同步程序的主要代码如下:
$configName = 'config.xml'; //主服务器的配置文件名称 $confPath = ROOT_PATH.'/_cfg/config.xml'; //主服务器的配置文件路径 //从服务器的主机名等信息 $serverGroup = $this->conf['ServerGroup']; //这里的$this->conf[];为框架内置数组,可以获取到上面配置文件中的内容 foreach($serverGroup as $k => $v){ //连接从服务器 $resConnection = ssh2_connect($k); //判断是否登陆从服务器成功 if(ssh2_auth_password($resConnection, $v['user'], $v['pass'])){ //初始化SFTP子系统 $resSFTP = ssh2_sftp($resConnection); if(!copy($confPath, "ssh2.sftp://{$resSFTP}{$v['path']}_inc/class/Algorithm/{$configName}")) { echo '同步配置文件失败'; } } else { echo "无法连接从服务器{$k}"; }
}
测试之前要确保系统有装相关扩展(如:libssh2)。
第一次写blog 。写下来这些东西算是做个备份吧,请大神们多多指教。
另外 程序中有一处不是很理解。
if(!copy($confPath, "ssh2.sftp://{$resSFTP}{$v['path']}_inc/class/Algorithm/{$configName}")) {
echo '同步配置文件失败';
}
这一段中 ssh2.sftp://{$resSFTP}{$v['path']}_inc/class/Algorithm/{$configName}"
重点是不太清楚为什么前面为什么要加 ssh2.sftp://{$resSFTP} 这么写的原理是什么? 希望看到这篇文章的大神能给解惑。谢谢
相关文章推荐
- 服务器容灾之使用rsync文件异地同步
- Windows使用cwRsync实现服务器文件同步到Linux服务器
- Linux中使用rsync实现多服务器之间文件同步问题
- Rsync使用非ssh默认端口从远程服务器同步文件到本地
- 主机通过sftp传输文件到某台服务器ubuntu虚拟机出现:open for write: permission denied
- 使用Second Copy同步ftp服务器的差异文件
- 如何使用NFS实现不同服务器之间文件共享
- ubuntu下如何使用sshfs加载远程服务器目录到本地文件系统
- 本地文件同步在远程服务器上使用
- 使用scp命令,不同服务器之间拷备文件
- linux rsync 不同服务器之间的文件备份同步
- 在sublime中使用sftp同步编辑远程Linux文件
- windows下使用cwRsync定期备份网站(服务器文件同步)
- 使用ssh远程VMware上ubuntu虚拟机 sftp 传送文件
- rsync 实现文件同步 (重要数据通过rsyncr把数据同步到不同的两台服务器上,这样可以防止服务器的硬盘故障导致数据丢失) 客户端同步时如果要排某个目录
- 不同服务器上的Java项目文件同步 解决方案(socket 、http)
- 本地windows机器和远程Linux服务器之间文件传输 -- Xshell 使用sftp 上传下载文件
- [sublime Text2] 使用 SFTP 插件快速编辑远程服务器文件
- 使用SFTP上传文件到服务器的简单使用
- 使用rsync 实现服务器文件同步