При попытке удалить файлы с ftp-сервера, используя приведенный выше скрипт, он зацикливается на поиске ./././././
каталогов, которые не существуют. Есть ли какая-либо ошибка в скрипте или это ошибка в psftpd? Может кто-нибудь помочь мне с этой проблемой? Вот циклические строки, скопированные с консоли powershell:
VERBOSE: Performing the operation "Remove item from ftp location" on target "ftp:/domain.com/.cagefs".
VERBOSE: Use original path: domain.com/.cagefs
VERBOSE: Remove additonal slash: domain.com/.cagefs
VERBOSE: Path is directory
VERBOSE: Use WebRequestMethods: LIST
VERBOSE: Use original path: domain.com/.cagefs.
VERBOSE: Remove additonal slash: domain.com/.cagefs.
VERBOSE: Path is directory
VERBOSE: Use WebRequestMethods: LIST
VERBOSE: Use original path: domain.com/.cagefs/..
VERBOSE: Remove additonal slash: domain.com/.cagefs/..
Код:
`Import-Module PSFTP`
`$FTPServer = 'domain.com'`
`$FTPUsername = 'username'`
`$FTPPassword = 'password'`
`$FTPSecurePassword = ConvertTo-SecureString -String $FTPPassword -asPlainText -Force`
`$FTPCredential = New-Object System.Management.Automation.PSCredential($FTPUsername,$FTPSecurePassword)`
`Set-FTPConnection -Credentials $FTPCredential -Server $FTPServer -Session MySession -UsePassive`
`$Session = Get-FTPConnection -Session MySession`
`$output = Get-FTPChildItem -Session $Session -Path '/' | Select ModifiedDate, Name | Where-Object {($_.ModifiedDate -lt (Get-Date).AddDays(-7))}|select name `
`echo $output`
foreach ( $file in $output ) {
Remove-FTPItem $file.name -Recurse -Session $Session -Verbose
}