script para copiar/mover ficheiros

Iniciado por DrJames, 21 de Março de 2011, 06:54

tópico anterior - próximo tópico

DrJames

Boas,
Tou a tentar criar um script para copiar e mover ficheiros, mas tou com um problema:
preciso de mover os ficheiros para um local na rede.
obrigado pela ajuda!

#!/bin/bash
#copiar e mover ficheiros
cp -R /home/oesteprisma/Documents/Processo_TESTE/* /home/oesteprisma/Music/
mv /home/oesteprisma/Documents/Processo_TESTE/* \\persona\arquivo\
echo "Cópia efectuada com sucesso!!!"

raidicar

Se o destino for linux:
Utilize o ssh: instale o servidor ssh e copie os dados para o destino usando o scp.
Para instalar o servidor ssh: apt-get install openssh-server
scp -r /origem IP_Destino:/diretorio_destino -l nome_do_usuário.
Como o ssh pede senha, existe a opção de utilizar chaves para a comunicação entre cliente e servidor sem senha.
Existe também outros metodos, como o programa sshpass que permite acesso inserir a senha no comando de cópia:
Ex: sshpass -p senha scp /origem nome_do_usuario@IP_Destino:/diretorio_destino


Para destino windows:
0 - Compartilhe a pasta no windows.

1 - Crie uma pasta no linux e mounte o diretorio compartilhado nela:
smbmount //IP_windows/Pasta_compartilhada /home/user/pasta_criada_para_montar_diretorio_windows -o username=user_windows,password=senha_windows
Para instalar o smbmount: apt-get install samba smbmount

3 - Executar a cópia:
cp -rf arquivos /home/user/pasta_criada_para_montar_diretorio_windows

4 - Desmonte o diretorio após a cópia:
umount /home/user/pasta_criada_para_montar_diretorio_windows
Quem ama extremamente, deixa de viver em si e vive no que ama. Na vida três coisas são certas, o amor, a morte e o Linux !
Se Platão disse, então realmente sofremos de uma perigosa doença mental.

rondonbio

use o rsync. além dele compactar pra transmissão, ele confere as cópias com assinaturas e só transmite o necessário. o melhor é que vc pode fazer um sincronismo recíproco de umas vez só.
bom demais da conta uai!
Rondon Neto
Veja o site e se sinta em casa!
http://oucoseusproblemas.blogspot.com.br/

DrJames

vamos por partes...

1º - este script tem como objectivo, o utilizador executar com duplo clique várias vezes por semana. (essa operação será sempre feita pelo user).
2º - vão ser 2 scripts diferentes. 1 vai copiar ficheiros entre ubuntu em rede, o outro copia do ubuntu para uma caixa NAS, que usa partilha samba.

Não há nada mais simples?

rsync parece-me demasiado complexo e vocacionado para ftp
a questão de montar a partilha parece-me provisória e preciso de ter a partilha sempre criada.

desculpem, mas n percebo nada disto...

rondonbio

#4
Dr. James, o rsync é mais simples que um script.
se ainda quiser tentar, faça assim:
rsync -rvvhzb /home/oesteprisma/Documents/Processo_TESTE/ usuário@ip_de_destino:/home/oesteprisma/Music/

isso copia a pasta Processo_teste pra dentro do music lá no outro pc.
O rsync é a maneira mais rápida de enviar arquivos pela rede. use ele ao invés do cp ou scp.  ;)

Rondon
Rondon Neto
Veja o site e se sinta em casa!
http://oucoseusproblemas.blogspot.com.br/

DrJames

Tentei e deu isto...

rsync -rvvhzb /home/oesteprisma/Documents/Processo_Teste/* posto-ensaios@192.168.180.112:/home/posto-ensaios/Documentos/Processos
opening connection using: ssh -l posto-ensaios 192.168.180.112 rsync --server -vvbrze.iLsf . /home/posto-ensaios/Documentos/Processos
ssh: connect to host 192.168.180.112 port 22: Connection refused
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(601) [sender=3.0.7]

o que falhou?

o IP do PC é atribuído por DHCP. neste caso que faço no lugar do IP?

rondonbio

Acredito que vc tenha que instalar o servidor ssh no pc remoto.
Vai lá nele e digita no terminal:
   sudo apt-get install openssh-server

depois de instalado, tente reconectar.

PS. se funcionar, vc poderá sempre conectar o pc pelo terminal. digite:
      ssh posto-ensaios@ip_da_maquina
pronto! vc estará na outra máquina. pra sair digite exit.
Rondon Neto
Veja o site e se sinta em casa!
http://oucoseusproblemas.blogspot.com.br/

DrJames

BOA! :D
copiou!

rsync -rvvhzb /home/oesteprisma/Documents/Processo_TESTE/* posto-ensaios@192.168.180.112:/home/posto-ensaios/Documentos/Processos
opening connection using: ssh -l posto-ensaios 192.168.180.112 rsync --server -vvbrze.iLsf . /home/posto-ensaios/Documentos/Processos
posto-ensaios@192.168.180.112's password:
sending incremental file list
delta-transmission enabled
processo_POAANNNN/
processo_POAANNNN/mota-engil.xls
processo_POAANNNN/puroclima.xlsx
total: matches=0  hash_hits=0  false_alarms=0 data=37987

sent 13.45K bytes  received 54 bytes  3.00K bytes/sec
total size is 37.99K  speedup is 2.81

agora como devo fazer se não souber o IP do PC?

Tendo em consideração ser uma operação rotineira, desempenhada por um qq utilizador, era ideal ter este comando num script...Posso executar o comando sem que ele peça a password?
Obrigado!


rondonbio

--> agora como devo fazer se não souber o IP do PC?
     Você tem que saber o ip. vai na máquina a ser conectada e digita ifconfig. lá no meio tem o ip.

-->tendo em consideração ser uma operação rotineira, desempenhada por um qq utilizador, era ideal ter este comando num script...Posso executar o comando sem que ele peça a password?
     Tem sim. Existe um esquema de assinaturas entre computadores. Veja em http://ubuntuforum-pt.org/index.php?topic=78183.msg434850#msg434850 Você ainda pode automatizar o sincronismo, pra rodar de tempos em tempos, usando o crontab.


Não esqueça de editar o título do tópico como Resolvido.

abraço

Rondon
Rondon Neto
Veja o site e se sinta em casa!
http://oucoseusproblemas.blogspot.com.br/

DrJames

Obrigado!

vou testar!

aproveito para complementar com este link, que me pareceu util.

http://ubuntuforums.org/showthread.php?t=238672