如何使用PHP-SSH2检查远程SSH服务器中是否存在目录'xyz'?使用PHP SSH2检查远程目录
回答
您可以使用使用SFTP file_exists前缀 'ssh2.sftp://'
例如,与配合建立连接,您可以:
$sftp = ssh2_sftp($connection);
$fileExists = file_exists('ssh2.sftp://' . $sftp . '/home/marco');
假设是一个Linux服务器
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$cmd = 'if test -d "/YOUR_DIRECTORY"; then echo 1; fi';
$stream = ssh2_exec($connection, $cmd);
我建议放弃PHP SSH2代替phpseclib, a pure PHP SSH implementation。
其中,PHP SSH2的API很糟糕。私钥必须保存在要加载的文件系统上,而使用phpseclib则需要的是字符串。您可以从$ _POST获取一个密钥,而不必像libssh2所要求的那样将其转储到文件系统。最重要的是,libssh2要求你有一个单独的公钥文件,因为私钥包含公钥,所以公钥是脑死亡。
来自libssh2的ssh2_exec()也返回ANSI颜色代码,有时从不返回输出,有时会返回(它不一致)。
最后,phpseclib是just plain faster。
当使用私钥进行身份验证时,'phpseclib'不会更快。使用一个体面的关键强度可能会导致连接超过10秒。 '私钥包含公钥',这是错误的。这不会改变ssh不需要公钥的事实。我不喜欢ssh2有限的key-as-filepath,但它不会损害模块的安全性,并且可以使用函数轻松地打包来创建临时文件。如果你不关心速度或CPU的使用情况,'phpseclib'非常棒,但我会说作为一个广泛使用的人,'ssh2'更快,更无bug。 –
几个月前phpseclib有一个更新,应该加快私钥的授权。有关详细信息,请参阅http://phpseclib.sourceforge.net/math/intro.html。 – neubert
<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);
$stream = file_exists("ssh2.sftp://$sftp/path/to/file");
?>
要检查远程路径是使用PHP_SSH2
$path="/tmp";
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);
$isdir = is_dir("ssh2.sftp://$sftp/$path");
if ($isdir ==true) {
echo "The Remote Folder is a Directory".PHP_EOL;
}
else {
$isfile = file_exists("ssh2.sftp://$sftp/$path");
if ($isfile == true) {
echo "The Remote Path is a File".PHP_EOL;
}
}
- 1. 使用grunt检查远程目录中存在哪些文件
- 2. Bash:检查是否存在使用FTP的远程目录
- 3. 获取目录大小ssh2 php
- 4. 使用PHP SSH2在远程位置创建zip文件
- 5. PHP目录权限检查
- 6. 用R检查远程目录是否存在
- 7. PHP扩展使用SSH2
- 8. SSH hot检查远程目录是否存在
- 9. PHP登录检查流程
- 10. 远程目录扫描
- 11. 使用curl进行远程登录(php)
- 12. 检查出从新增分支机构目录远程分支
- 13. Ant检查是否存在远程目录
- 14. 远程登录PHP
- 15. 远程登录PHP
- 16. 如何使用jQuery检查远程网站的登录信息
- 17. 如何查询远程索引目录
- 18. 远程PHP getimagesize()/检查是否存在
- 19. 在网站使用远程检查
- 20. 使用Subversion检查远程修改
- 21. php chown文件在远程服务器ssh2
- 22. java scp文件到远程使用ganymed-ssh2
- 23. 无法使用Net :: SSH2从远程设备获取输出
- 24. 检查使用PHP是否存在远程页面?
- 25. 如何使用PHP检查远程HTML更改?
- 26. 检查目录
- 27. URLSession - 下载远程目录
- 28. python:监视远程目录
- 29. PHP目录存在检查问题
- 30. 如何检查目录是在线PHP
这里http://www.php.net/manual/en/function.ssh2-exec检查手动文件夹或文件。 php – powtac
和交换密钥,或者您需要提供一个用户名/密码到您的PHP脚本工作。如果您交换密钥,请考虑到如果您通过apache执行脚本,则需要使用apache用户执行此操作。 –
我不是在谈论SSH连接建立。我需要检查连接后服务器中可能存在的特定目录。 – World