2016-01-20 4 views
1

Я использую следующую команду для перехода из местоположения SFTP в локальную папку. Это переносит все файлы из местоположения SFTP в локальную папку.Передача нескольких файлов из SFTP старше, чем вчера, с использованием PSCP

Как передать файлы, которые предназначены только для, например, старше, чем вчера?

 
cmd /c c:/putty/pscp -q -batch -pw password -i C:/putty/key_pk.ppk -r [email protected]:/home/user/Folder1/* C:/LocalFolder1/SFTP/ 

Спасибо.

ответ

0

pscp не может этого сделать.

Все, что вы можете сделать, это список всех файлов с помощью переключателя -ls, проанализировать вывод, чтобы найти старые файлы и создать сценарий загрузки для идентифицированных файлов.


Или используйте клиент SCP/SFTP, способный выбирать файлы по метке времени.

Например, с WinSCP SFTP/SCP client, вы можете использовать следующий пакетный файл (.bat) для загрузки файлов старше одного дня:

winscp.com /log=c:\path\to\winscp.log /command^
    "open sftp://root:[email protected]/ -privatekey=""C:\putty\key_pk.ppk"" -hostkey=""ssh-rsa 2048 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx"""^
    "get -filemask=<1D /home/user/Folder1/* C:\LocalFolder1\SFTP\"^
    "exit" 

Ссылки:

(Я автор WinSCP)

+0

Спасибо, это помогло. Тем не менее, я пытался получить файл, измененный сегодня, и если я сделаю это следующим образом, он получит весь файл не только те, которые обновлены/изменены сегодня. Почему это? Является ли мой синтаксис неправильным? 'winscp.com /log=c:\path\to\winscp.log/command^ " open sftp: // root: [email protected]/ -privatekey = "" C: \ putty \ key_pk .ppk "" -hostkey = "" ssh-rsa 2048 xx: xx: xx: xx: xx: xx: xx: xx: xx: xx: xx: xx "" "^ " get -filemask *> =% TIMESTAMP # yyyy-mm-dd%/home/user/Folder1/* C: \ LocalFolder1 \ SFTP \ "^ " exit "' –

+0

Вам не хватает знака равенства после '-filemask' , Это должно быть: '-filemask = *> =% TIMESTAMP # yyyy-mm-dd%' (и '*' можно опустить, как и в моем ответе) –

+0

Я тоже это пробовал. Но скрипт получает все файлы в местоположении SFTP (у меня есть 3 файла, 19 января, 20 января и 21 января). См. Следующий результат: 'get -filemask = *> =/home/user1/folder1/* C: \ localfolder1 \' –