Newby question: Como eu automatizo a cópia de arquivos em um computador remoto?

1

Em primeiro lugar, tenho o maior respeito pelos programadores & Profissionais de TI. Eu sou um novo / quero ser. Estou à procura de ajuda para desenvolver um pequeno programa / script que me ajude com a tarefa que detalhei abaixo. Eu não estou enviando isso como lição de casa. Isso é relacionado ao trabalho, mas NÃO estou pedindo que você faça meu trabalho. Eu estou tomando isso como uma oportunidade para aprender mais sobre programação, fazendo uma tarefa que eu preciso fazer. Qualquer código que você forneça será útil, mas estou muito interessado nos principais conceitos, etapas e conselhos sobre como lidar melhor com essa tarefa (quais ferramentas, idioma, etc.)

Veja o que eu tenho: Máquinas XP (locais e remotas)

  • Algum conhecimento básico de arquivos em lote
  • Um pouquinho de experiência com o Visual Basic 2008 Express
  • Um pouco TINY de experiência C ++ (e tem o compilador Code Blocks)
  • Um conhecimento de trabalho muito justo sobre o XP

Aqui está o que eu quero fazer:

Todas as segundas e sextas à meia-noite, eu quero uma máquina externa (nº 1) que eu configurarei e que possa acessar

  1. Acorde do modo de hibernação
  2. Copiar (ou xcopy) um diretório (\ Server \ remoteBackup) com todo o seu conteúdo de uma máquina selecionada (# 2) no escritório (que estará ligada) através de uma conexão ftp ou internet para a máquina externa (C: \ remoteBackup)
  3. Coloque um arquivo "successfulCopy.txt" em outra máquina selecionada (# 3) (\ machine3 \ log). Cada arquivo "successfulCopy.txt" deve verificar se existe "successfulCopy.txt" e, em caso afirmativo, renomear o novo para "successfulCopy (2) .txt" ou o que for.
  4. Volte para o modo de hibernação (seja quando terminar ou em um cronômetro)

Este é basicamente um sistema de backup remoto. Quais são seus pensamentos? Qualquer ideia que você forneça seria mais útil se você nomeasse essas informações de modo que eu pudesse pesquisar sua resposta no Google para saber mais se eu tiver mais dúvidas. Eu aprecio qualquer ajuda que você possa fornecer. Eu quero fazer isso porque eu quero fazer isso e por nenhum outro motivo.

    
por John Gardeniers 13.10.2009 / 23:54

6 respostas

1

Não é possível ajudá-lo com o lado de hibernação, mas, para copiar os arquivos, procure em scp e login baseado em chave.

Para manter versões antigas do arquivo de cópia bem-sucedido, você deve poder usar ssh para executar comandos no remoto para fazer isso.

Você também pode querer ver o cygwin; isso lhe dará ssh e bash , o que pode facilitar o que você quer.

    
por 14.10.2009 / 00:07
1

Eu escrevi um grande post, e eu juro que postei, e ainda assim ... Hmmm.

Você vai querer fazer algum tipo de arquivamento: isso tornará sua vida muito mais fácil. Eu recomendo 7zip; é um utilitário zip gratuito que possui uma poderosa interface de linha de comando. Muito fácil escrever um comando 7zip de uma linha para arquivar e compactar uma árvore de diretórios inteira, e também suporta a opção "update" para arquivos, então ao invés de quebrar cada arquivo toda vez, ele pode apenas atualizar os arquivos alterados. Deve economizar muito tempo.

Uma vez que você tenha seu arquivo, você desejará enviá-lo para algum lugar. Eu recomendo WinSCP; é um cliente FTP / SFTP livre que também tem um bom suporte a linha de comando / script. A interface de script é bastante poderosa.

Coloque os dois juntos e você pode escrever um simples arquivo batch DOS para rodar os comandos necessários. Rápido, simples e eficaz.

Tente evitar a tentação de reinventar a roda. Essa é uma ótima lição para aprender. Há pessoas por aí que já gastaram muito tempo juntando peças que você pode usar.

    
por 14.10.2009 / 01:42
0

Não é exatamente o que você está pedindo, mas eu usaria apenas um dos muitos programas de cópia de arquivos disponíveis. Eu uso o Second Copy.

    
por 14.10.2009 / 00:05
0

Existem outros e melhores métodos, mas aqui está uma lista de ideias simples que exigem pouco conhecimento ou experiência:

  1. Você pode configurar normalmente as configurações de energia no BIOS para ativar a máquina em um determinado momento, muitas vezes rotuladas como configurações de "Alarme"
  2. Em vez de copiar ou xcopy, procure no Robocopy. É muito mais flexível e extremamente robusto (daí a parte "robo" do nome) e pode retomar tarnsfers interrompidos
  3. O Robocopy pode criar um arquivo de log, mas você terá que verificar se há uma mensagem de erro (o Perl é ideal para isso)
  4. Olhe para o shutdown.exe
por 14.10.2009 / 01:47
0
  1. Acorde uma máquina no local - agende uma tarefa (qualquer tarefa) nessa máquina para ativá-la. Mais em - link

  2. O script FTP precisa ser criado nas máquinas Source (mput) / Destination (mget) e chamado usando uma tarefa agendada. Você pode encontrar amostras de scripts FTP online. De fato, você pode agendar um cliente GUI de FTP também para fazer isso, salvando o trabalho dentro dele.

  3. Pode ser feito usando o script / ftp gui client acima

  4. você pode agendar "shutdown.exe -h" ou "psshutdown.exe -h" para fazer isso.

Inclua todos os itens acima em um arquivo em lote que é acionado por meio de uma única tarefa agendada, por conveniência.

hth's

    
por 14.10.2009 / 01:58
0

Você também pode investigar o rsync para sua tarefa. É frequentemente usado para backups remotos de árvores de diretórios.

    
por 14.10.2009 / 09:13