WinSCP colocando vários arquivos no site do SFTP

3

Com o WinSCP 5.2, eu queria colocar vários arquivos com uma extensão de arquivo .pgp em um site SFTP. Quando testei minha linha de comando original (veja abaixo) e coloquei apenas o primeiro arquivo alfabético *.pgp ( D:\a.csv.pgp ) no site SFTP. Eu tentei especificar *.PGP e *.pgp sem nenhuma alteração - apenas um arquivo ( D:\a.csv.pgp ) seria copiado a cada vez. Eu consegui que funcionasse para todos os arquivos somente se eu especificasse um comando put para cada arquivo .pgp . Alguma idéia de como colocar todos os *.pgp no site do SFTP?

Linha de comando original - não funciona em d:\winscp\winscp /command "option echo off" "option batch on" "option confirm off" "open sftp" "put D:\*.pgp" "close" "exit"

Funciona com d:\winscp\winscp /command "option echo off" "option batch on" "option confirm off" "open sftp" "put D:\a.csv.pgp" "put D:\b.csv.pgp" "put D:\c.csv.pgp" "put D:\d.csv.pgp" "put D:\e.csv.pgp" "put D:\f.csv.pgp" "put D:\g.csv.pgp" "put D:\h.csv.pgp" "put D:\i.csv.pgp" "close" "exit"

    
por NewToWinSCP 22.09.2011 / 23:20

3 respostas

3

Você parece estar usando o modo SFTP em vez do modo SCP

Tente mput *.pgp (um palpite baseado em comandos FTP)

O manual diz que os curingas devem funcionar

put <file> [ [ <file2> ... ] <directory>/[ <newname> ] ]
If only one parameter is specified uploads the file to remote working directory. If more parameters are specified, all except the last one specify set of files to upload. The last parameter specifies target remote directory and optionally operation mask to store file(s) under different name. Destination directory must end with slash. Filename can be replaced with Windows wildcard1) to select multiple files. To upload more files to current working directory use ./ as the last parameter.

put *.html *.png /home/martin/backup/*.bak

Você DEVE colocar o diretório de destino como o último item no comando citado.

d:\winscp\winscp /command "option echo off" "option batch on" "option confirm off" "open sftp" "put D:\*.pgp ""C:\Documents and Settings\newtowinscp\Documents\Backups""" "close" "exit"

    
por 23.09.2011 / 01:13
1

Se você estiver executando isso a partir de um script, basta criar um loop. Você pegaria todos os arquivos * .pgp e percorreria a lista. Você realmente carregaria os arquivos individualmente; Eu não acredito que SFTP / SCP no nível do protocolo mova vários arquivos de uma só vez, então eu não acho que isso deveria afetar o desempenho, provavelmente tornaria o tratamento de erros mais fácil também.

Eu acredito que há uma maneira de fazer isso com a linha de comando nativa pura, mas nos meus scripts de backup (eu faço o inverso, puxo arquivos do meu site SFTP) Eu uso este programa (forfiles) da Microsoft: < href="http://technet.microsoft.com/pt-br/library/cc753551(WS.10).aspx"> link . Vou deixar você ler os exemplos de como usá-lo de forma mais eficaz para suas necessidades. Basicamente, você usará um caractere curinga para o nome do arquivo e, em seguida, executará seu comando de upload para cada instância.

    
por 23.09.2011 / 01:40
0

Não há nada errado com o seu primeiro comando (com put D:\*.pgp ).

Como você afirma que apenas um único arquivo foi enviado, é provável que ocorra algum erro, o que impede que o script continue com outros arquivos. Deve haver um erro na operação após o upload real (conforme isso for bem-sucedido), como a atualização do carimbo de hora ou das permissões do arquivo enviado.

Como esse erro: O upload do arquivo .. foi bem-sucedido, mas ocorreu um erro ao definir as permissões e / ou o registro de data e hora. Se o problema persistir, desative as permissões de configuração ou preserve o registro de data e hora. Alternativamente, você pode ativar a opção 'Ignorar erros de permissão'. .

Você deve ver claramente o que está errado na saída do script ou no arquivo de log da sessão.

    
por 12.06.2014 / 17:17