quarta-feira, 12 de janeiro de 2011

Sincronizando arquivos com o robocopy - Parte 1

O robocopy pode ser utilizado de várias maneiras para sincronizar arquivos entre computadores, ou mesmo entre dispositivos de armazenamento. A única desvantagem é que é que só sincroniza em uma direção, ou seja, o arquivos são copiados apenas da origem para o destino. Para saber mais sobre o robocopy veja meu outro post sobre o robocopy.
Para copiar o conteúdo de uma pasta para outro local basta utilizar o comando:

robocopy origem destino

Se quiser incluir as subpastas deve-se acrescentar a opção /s:

robocopy origem destino /s
Pode ser utilizado para se fazer mirror de uma pasta, ou seja, ter dentro dela o mesmo conteúdo de uma outra pasta. Para isso, utiliza-se a opção /mir

robocopy origem destino /mir

O robocopy pode também copiar apenas determinados tipos de arquivos.
Caso se queira copiar apenas os arquivos de música para um mp3 player, por exemplo:

robocopy origem destino *.mp3 /s

Lembrando que o ele só vai copiar os arquivos novos e os modificados, os arquivos que já existem na pasta de destino não serião copiados novamente.
Porém, pode-se também fazer o robocopy não copiar arquivos com determinados critérios.
Por exemplo, não copiar os arquivos extras (arquivos que não existem no destino):

robocopy origem destino *.mp3 /s /xx

Não copiar os arquivos mais novos e mais antigos (arquivos que foram modificado na origem ou destino):

robocopy origem destino *.mp3 /s /xn /xc /xo

Não copiar os arquivos maiores que 5MB (5242880 bytes), nem os menores que 5KB (5120 bytes):

robocopy origem destino *.mp3 /s /max:5242880 /min:5120

É possível também excluir da lista de arquivos a serem copiados determinadas pasta ou arquivos. Por exemplo, não copiar a pasta variados nem o arquivo audio1.mp3

robocopy origem destino *.mp3 /s /xd variados xf audio1.mp3

Uma das grandes vantagens do robocopy é a capacidade de continuar a transferência de um arquivo incompleto, para tanto basta adicionar a opção /Z. Porém em alguns casos não é possível usar o modo reiniciável, por isso há também um outro modo de cópia, o de backup (opção /B). É recomendavel é usar a opção /ZB para que o robocopy tente utilizar o modo reiniciável e, caso o acesso ao arquivo seja negado, usar o modo backup.
Apenar o robocopy não possuir uma opção de sincronização de mão-dupla (copiar modificações em ambos os sentidos), pode-se utiliza-lo para esse propósito. Basta executar dois comandos de cópia, utilizando as opções a seguir:

robocopy pasta1 pasta2 *.* /xc /xo
robocopy pasta2 pasta1 *.* /xc /xo

Porém deve se levar em consideração que neste caso o robocopy não copia arquivos que mudaram de tamanho mas não tiveram suas data de modificação atualizada.
Para facilitar o uso o robocopy ainda permite que a opções sejam salvas para que possam ser utilizadas posteriormente. Para salvar as opções de cópia utiliza-se a opção /save: seguido do nome do arquivo. Para utilizar as opções salvar utiliza-se a opção /job: seguido do nome do arquivo. Ex:

robocopy pasta1 pasta2 *.* /xc /xo /save:copia1
robocopy pasta2 pasta1 /job:copia1

Ao salvar as opções de cópia ele também salva o caminho das pastas que foram utilizadas. Portanto, se vc precisa usar o mesmo comando de cópia muitas vezes utlizando as mesmas opções e as mesmas pastas, basta salva-las e utilizar /nosd e /nodd para dizer ao programa que deve ser utilizado as pasta que foram salvas no arquivo. Ex:
robocopy pasta1 pasta2 *.* /xc /xo /save:copia1
robocopy /nosd /nodd /job:copia1

sábado, 11 de setembro de 2010

Usando o Thinstation como cliente do Terminal Server

O Thinstation é uma distribuição GNU/Linux, desenvolvida para thin client ou equipamentos antigos. Ele pode se conectar a um servidor remoto ou que utilizar recursos locais, para conexões remotas. O Thinstation permite a utilização do NoMachine NX, VNC, Microsoft Windows Terminal Services (RDP), VMWare View Open client, X, telnet, SSH, entre outros.
Para utiliza-lo como cliente do Terminal Server do Windows, é necessário configurar o Windows Terminal Server. (Como configurar um servidor de terminal).
Para configurar o Windows para boot pela rede será necessário usar um programas de terceiros, já que o Windows não fornece servidor TFTP. Recomendo o TFTPd32. Para saber como configurar o TFTPd32 acesse meu outro post.
Em seguida deve-se baixar o thinstation, para isso acesse o site http://www.thinstation.net/TSoM.


O TS-O-Matic é um site onde você pode criar uma versão personalizada do thintation. Como ele, pode-se selecionar apenas os aplicativos que se deseja utilizar. Utilizaremos a configuração padrão, pois ela já inclui o cliente do terminal server.
Clique no icone Build
Aguarade até que ele construa a imagem. ao concluir você terá a opção de editar o arquivo de configuração.


Esse arquivo de configuração ficará armazenado dentro da imagem e será usado quando não encontrar outros arquivos de configuração. Você acrescentar as linhas a seguir no final do arquivo:

SESSION_0_TITLE=Icewm
SESSION_0_TYPE=icewm
SESSION_0_AUTOSTART=ON

Clique no icone Write Image para continuar e aguarde até que o processo de construção da imagem concluir.
Primeiro, você deve baixar o arquivo de configuração. Clique em Build e baixe o thinstation.conf.example, renomei-o para thinstation.conf.network e colque na pasta do servidor TFTP. Este é o arquivo de configuração do Thinstation, qualquer alteração da configuração deve ser feita nele.
Para baixar a imagem gerada, clique em PXE e baixe os arquivos initrd, vmlinuz, pxelinux.0 e default e colocá-los dentro da pasta do servidor TFTP. Em seguida, crie uma pasta chamada pxelinux.cfg e coloque o arquivo default dentro dela.
Configure no servidor DHCP o arquivo de inicialização para pxelinux.0.
Pronto! Seu servidor já está configurado para inicializar o Thinstation pela rede. Quando ele estiver executando basta clicar no icone MSWindows para acessar o Windows Terminal Server (ou o MS Windows [fs] para abrir em tela cheia).

terça-feira, 20 de julho de 2010

Um script bash para converter pilhas de papel em arquivos PDF

Com um scanner com alimentador automático, é possível converter facilmente uma grande quantidade de papel em um único arquivo pdf. Não encontrei nenhum aplicativo nativo para GNU/Linux que faça essa tarefa com pouca interferência do usuário. Por isso, fiz um script que deve funcionar com a grande maioria dos scanners com alimentador automático e tem as seguintes características.
  • Digitalização automática de todos as folhas da bandeja, sem a necessidade de informar a quantidade de folhas.
  • Digitalização de frente e verso dos documentos.
  • União de todas as folhas digitalizadas em um único arquivo PDF.
O script está disponível livremente no weblog do Alex França.

segunda-feira, 19 de julho de 2010

Checando por mensagens do Gmail pelo terminal do Linux

"Uma dica bacana para aqueles que precisam verificar por mensagens do Gmail frequentemente. Uma alternativa a ter que manter os clientes Evolution, Thunderbird e outros abertos, é checar essas mensagens pelo terminal, para isso precisaremos dos seguintes softwares: curl, awk e sed.". [Leia o texto completo]
Fonte: vivaolinux.com.br

segunda-feira, 20 de julho de 2009

Iniciando o DOS pela rede

Apesar de não ser muito útil, em alguns casos pode ser necessário iniciar o DOS pela rede, como a atualização de uma BIOS, ou outros programas do tipo). Portanto resolvi mostrar como se faz para dar boot no DOS (MS-DOS, DR-DOS, FreeDOS, etc) pela rede. Para tanto é necessário uma imagem de disquete inicializável do DOS.

Programas Necessários:
  • Servidor TFTP e DHCP com suporte a PXE (Usaremos o TFTPd32). Para saber em detalhes veja meu outro artigo Montando um servidor de boot PXE.
  • PXELinux (componente do SYSLinux).
  • Imagem do DOS (usaremos o FreeDOS). fdboot.img.
Lembrando que qualquer imagem de disquete do DOS serve (DR-DOS, MS-DOS, boot Win98/ME, etc).

Copiando o arquivos para o servidor TFTP
  • Copie o arquivo de imagem do DOS (fdboot.img) para o díretório raiz do servidor TFTPd32 (C:\tftp, como antes).
  • Desconpacte o arquivo syslinux.zip em um pasta qualquer.
  • Pegue os arquivos memdisk (na pasta memdisk) pxelinux.0 (na pasta core) e os copie para a pasta do TFTPd32.
Criando um arquivo de configuração para o PXELinux

Dentro do diretório do TFTPd32 crie uma pasta chamada pxelinux.cfg. Em seguida, crie um arquivo chamado default (sem extensão) com o seguinte conteúdo:

default dos
timeout 0
prompt 0

label dos
kernel memdisk
append initrd=fdboot.img

Pronto! Agora ao dar boot pela rede ele vai carregar o FreeDOS ou DOS que você escolher.