Удалить файлы с шаблоном в удаленном каталоге SFTP - PullRequest
0 голосов
/ 16 ноября 2018

Мне нужно удалить файлы, соответствующие некоторому шаблону (имя, содержащее определенную строку), из удаленного каталога на SFTP-сервере с использованием PS.

Ответы [ 2 ]

0 голосов
/ 16 ноября 2018

Вы также можете попробовать библиотеку ssh.net (она довольно легковесна)
https://github.com/sshnet/SSH.NET После ее сборки базовый синтаксис будет выглядеть следующим образом

Add-Type -Path "path\to\Renci.SshNet.dll"
$conn = New-Object Renci.SshNet.SftpClient -ArgumentList @($HostName, $PortNumber, $UserName, $Password)
$conn.connect()
$files = $conn.ListDirectory("DirName").FullName | where { $_ -like "*.csv"}
$files | foreach { $conn.Delete($_) }

Вы также можете установить GitBashтогда в вашем терминале будет доступна команда ssh.

0 голосов
/ 16 ноября 2018

В PowerShell нет встроенной поддержки SFTP.Вы должны использовать стороннюю библиотеку SFTP.

Например, сборка WinSCP .NET , вы можете сделать это:

Add-Type -Path "WinSCPnet.dll"

$sessionOptions = New-Object WinSCP.SessionOptions -Property @{
    Protocol = [WinSCP.Protocol]::Sftp
    HostName = "example.com"
    UserName = "username"
    Password = "password"
    SshHostKeyFingerprint = "ssh-rsa 2048 ..."
}

$session = New-Object WinSCP.Session

$session.Open($sessionOptions)

$session.RemoveFiles("/remote/path/*string*").Check()

$session.Dispose()

WinSCP GUI canсгенерировать шаблон кода для вас.

(я автор WinSCP)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...