我尝试使用phpseclib删除SFTP服务器中的所有日志。
代码很简单:
$sftp = new Net_SFTP($host_name);
$sftp->login($username, $password); // login is successful
$sftp->chdir('/somefolder');
if(!$sftp->delete('*.log')) {
$logger->error('Cannot remove logs');
}
日志显示“无法删除日志”。
但是,我在shell中使用SFTP命令,它可以工作:
$ sftp myusername@example.com
Password: (type in my password)
sftp> cd /somefolder
sftp> rm *.log
Removing xxx.log
Removing yyy.log
sftp> ls
( no more *.log )
sftp> exit
phpseclib删除功能是否支持通配符?如果没有,还有其他选择吗?
答案 0 :(得分:2)
Does the phpseclib delete function supports wildcard character ? If not, any alternatives ?
目前不是没有。我想你可以做$sftp->nlist()
并在nlist返回的每一行上做一个preg_match。如果匹配则删除它,否则保留它。