copiando arquivos do unix para o windows?

1

Existe alguma maneira de automatizar o processo de copiar os arquivos entre o Windows e o Unix? sem fazer isso manualmente, usando ferramentas como winscp .

Eu preciso copiar arquivos do unix para o windows, executando alguns comandos no windows. Eu gostei e encontrei essas ferramentas que podem fazer isso.

ftp
sftp
scp
pscp
winscp console.

EDITAR : Posso obter algo usando pscp porque acabei de descobrir que ftp não está habilitado em meus servidores.

Por favor, sugira uma maneira de fazer isso e eu preciso executar qualquer script / comando no windows apenas para copiar os arquivos unix.

EDIT 2 : Obtendo este erro no winscp console para sftp :

winscp> get abc.sh c:\
abc.sh                    |          0 KiB |    0.0 KiB/s | binary |   0%
Can't create file 'c:\abc.sh'.
System Error.  Code: 2.
The system cannot find the file specified
(A)bort, (R)etry, (S)kip, Ski(p) all:
    
por munish 24.01.2013 / 11:55

5 respostas

3

Eu usaria o script WinSCP para este Aqui você tem uma boa documentação sobre como fazer isso. Exemplo de script:

# Automatically abort script on errors
option batch abort
# Disable overwrite confirmations that conflict with the previous
option confirm off
# Connect using a password
# open sftp://user:[email protected] -hostkey="ssh-rsa 1024 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx"
# Connect
open sftp://[email protected] -hostkey="ssh-rsa 1024 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx"
# Change remote directory
cd /home/user
# Force binary mode transfer
option transfer binary
# Download file to the local directory d:\
get examplefile.txt d:\
# Disconnect
close
# Connect as a different user
open [email protected]
# Change the remote directory
cd /home/user2
# Upload the file to current working directory
put d:\examplefile.txt 
# Disconnect
close
# Exit WinSCP
exit

Em seguida, salve-o em example.txt e use este comando:

winscp.exe /console /script=example.txt

    
por 24.01.2013 / 12:03
1

Você diz que quer automatizar o processo, mas ao mesmo tempo diz que quer executar alguns comandos. Outras respostas contêm algum comando, mas se você quiser ter automação, vale a pena tentar um uníssono . Ele permite não apenas a sincronização unidirecional, mas também fornece uma maneira de manter dois diretórios sincronizados em diferentes máquinas.

    
por 24.01.2013 / 12:30
1

Existem várias soluções ... Uma forma de impactar a maneira como você abordará é de onde ela deve ser iniciada.

No dispositivo Unix, você deve conseguir montar um compartilhamento de arquivos do Windows e manipulá-lo, como manter os arquivos locais sincronizados. (Nomes de arquivo com caracteres que o Windows não gosta podem complicar ...)

Você também pode compartilhar a unidade e montá-la usando o NFS no Windows (ela está no Services for Unix no XP e um componente opcional no Vista e mais recente (pode precisar de edições específicas, algumas alternativas também estão disponíveis)). (O Samba também pode ser usado para um compartilhamento de arquivos do Windows se você não quiser instalar o cliente NFS no Windows)

Uma vez configurado, você pode usar ferramentas como Unison e Rsync (ou cp para casos simples) (se você fizer isso do lado Unix) ou SyncToy ou ferramentas similares (para o lado do Windows) como você faria para arquivos locais.

scp (e o equivalente em pacote% PuTTYpscp pode ser mais fácil de proteger, mas precisa de chaves SSH configuradas para funcionar automaticamente). curl também suporta SCP e SFTP (principalmente para buscar arquivos) e pode ser útil para várias outras opções também.

    
por 24.01.2013 / 13:13
0

Você também deve considerar rsync . Existem muitas portas do Windows.

link

    
por 24.01.2013 / 12:10
0

Você pode usar Samba como file sharing .Ao configurar, você pode automatizá-lo via shell script e crontab .

    
por 25.01.2013 / 07:06