Ubuntu como Servidor de Backups

Iniciado por estrafalhote, 12 de Maio de 2009, 06:53

tópico anterior - próximo tópico

estrafalhote

 Boas

Tenho em mente um projecto para uma espécie de Home server para uso próprio.
Sendo que tenho uma série de dúvidas

1ª Gostaria de tornar este servidor num servidor de Backups que fosse remotamente pela rede buscar os dados aos 2 pc's que tenho em casa, sendo um deles ubuntu 8.10 e um Win XP Pro SP3. Não estou minimamente preocupado se vai gerar muito ou pouco tráfego na rede, pois tenho os pc's em causa muito tempo ligados sem serem usados por isso o tráfego é o menor dos problemas.

2ª Queria também que me dissessem que ferramenta posso usar para de vez em quando gravar esses ficheiros para uns DVD's

3ª já agora, será que isto dá para fazer com o webmin? pois tenho andado a ver umas coisas sobre esta ferramenta e ela parece-me ser bastante interessante e gostaria de a explorar.

4º Por fim gostava que me indicassem como habilitar este dito servidor para receber ligações de ambiente trabalho remoto, para poder configurar tudo a partir do meu pc

raidicar

Para backup utilize o comando rsync: rsync -Cravzpu origem destino
Ex:
rsync -Cravzpu /server/dadosXP/* /server/backup/dadosXP/   #Sincronizando origem com destino.
rsync -Cravzpu /server/dadosubuntu/* /server/backup/dadosubuntu/   #Sincronizando origem com destino.

Entenda que tudo o que vou descrever abaixo é realizado no servidor, nos clientes apenas compartilhe a pasta a ser backupeada para o servidor.

Primeiro passo é mapear as pastas a serem backupeadas no servidor, para isso crie uma estrutura similar a essa.
Primeiro, vamos criar a origem, onde as pastas serão montadas, o comando é:
mkdir -p /server/dadosubuntu
mkdir -p /server/dadosXP
Agora o destino, ou seja, local onde será salvo o backup.
mkdir -p /server/backup/dadosXP
mkdir -p /server/backup/dadosubuntu

Comando para mapear as unidades após instalar o samba e o smbfs (apt-get install samba smbfs):
smbmount //IP_DO_XP/COMPARTILHAMENTO /server/dadosXP -o username=nome,password=senha
smbmount //IP_DO_UBUNTU/COMPARTILHAMENTO /server/dadosubuntu -o username=nome,password=senha
O comando é simples de entender, coloque o ip do micro onde solicitado, em seguida, a pasta compartilhada, essa pasta compartilhada é a pasta compartilhada no cliente, ex: meus documentos. Por fim, coloque o usuário e senha igual ao do micro cliente onde solicitado.
Se eu compartilho a pasta mes documentos com o nome de docsxp no windows xp e, se o micro com o windows xp tem o ip 192.168.1.5, e, se eu acesso o micro com o windows xp utilizando o usuário raidicar e a senha 123456, o comando seria:
smbmount //192.168.1.5/docsxp /server/dadosXP -o username=raidicar,password=123456
Entendeu?
Agora, ao acessar o diretório recém criado /server/dadosXP, vejá que o mesmo não esta vazio, pois o conteúdo dele é o conteúdo da pasta mapeada do windows XP.
Mas lembre-se, é só uma unidade montada no servidor, os dados não estão no servidor, ainda estão todos no micro cliente.
rsync -Cravzpu /server/dadosXP/* /server/backup/dadosXP/ - Com esse comando, agora os dados são enviados para a pasta /server/backup/dadosXP/, ao término, os dados estarão backupeadaos nessa pasta.
O backup é incremental, ou seja, ao roda-lo pela segunda vez, apenas os dados alterados serão transferidos, economizando tempo e diminuindo o trafego.

Explicando o comando rsync:
rsync -Cravzpu = comando e parametros para sincronizar, ESTUDE-O a fundo, sua quantidade de parametro é grande.
/server/dadosXP/* = origem, que na verdade é uma unidade montada (ou mapeada) da pasta compartilhada a ser backupeada.
/server/backup/dadosXP/ = destino, local onde será realizado o backup.

Nesse ponto, faça um script para o backup e deixe-o rodando em segundo plano, pode configura-lo para rodar automaticamente na inicialização.

#!/bin/bash
loop=1
until [ $loop = "0" ]; do
      rsync -Cravzpu /server/dadosXP/* /server/backup/dadosXP/
      rsync -Cravzpu /server/dadosubuntu/* /server/backup/dadosubuntu/
    sleep 1800
done

Explicando o script:
loop=1 = variavel que armazena um valor que nunca será verdadeiro no loop abaixo.
until [ $loop = "0" ]; do = Condição que permite executar um loop infinito. pois a condição exigida para parar o script não ocorre, pois para o script parar, a variavel loop precisa ser 0, mas a mesma tem o valor 1 e esse valor não vai mudar.
sleep 1800 = pausa de 1800 segundos, equivalente a 30 minutos, após a pausa, o backup volta a ser realizado, ou seja, a cada 30 minutos o backup roda.
É sempre importante deixar todos os micros com horarios sincronizados, não se desatente disso caso queira se aprofundar utilizando o rsync.


Citar2ª Queria também que me dissessem que ferramenta posso usar para de vez em quando gravar esses ficheiros para uns DVD's
Brasero, k3b... prefiro o Brasero,

Citar3ª já agora, será que isto dá para fazer com o webmin? pois tenho andado a ver umas coisas sobre esta ferramenta e ela parece-me ser bastante interessante e gostaria de a explorar.
Sim, no webmin, em CLUSTER, va em Cluster Cron Jobs e coloque os comandos do rsync, dessa forma, não é necessário o script.
defina o tempo com o qual o comando vai rodar. Apesar de preferir utilizar um script.

Citar4º Por fim gostava que me indicassem como habilitar este dito servidor para receber ligações de ambiente trabalho remoto, para poder configurar tudo a partir do meu pc
Isso é o de menos, que dificuldade está tendo com o vnc? no menu sistema / preferencia / area de trabalho remota.
Desmarque a opção pedir confirmação e marque as demais, que são: exigir senha, permitir que usuarios vejam a area de trabalho e permitir controle.
com um cliente vnc, vc acessa remotamente o micro.

affe, ja desanimei um pouco de tanto digitar, mensagens assim vale por 10.
Testa ai e poste qualquer duvida.
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.

estrafalhote

Antes demais muito obrigado pelo tuturial ;)
Ainda não tive tempo para ler tudo e provavelmente só  no fim de semana é que vou poder testar.

Pelo que vi grande parte das opções vai por ip, que no meu caso são todos dinâmicos, se calhar é melhor criar também um DNS não?

quanto ao ambiente de trabalho remoto não tive quaisquer problemas, pois ainda só tive tempo de instalar o SO e tenho o PC desligado porque ainda não tive tempo de começar a preparar aquilo.

raidicar

não entendi o que a dns tem a ver com tudo isso, mas tudo bem, se o IP dos micros é dinamico, onde é solicitado colocar o IP, coloque o nome do computador.
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.

estrafalhote

Citação de: raidicar online 13 de Maio de 2009, 14:16
não entendi o que a dns tem a ver com tudo isso, mas tudo bem, se o IP dos micros é dinamico, onde é solicitado colocar o IP, coloque o nome do computador.

o que eu queria dizer com o servidor de DNS era neste caso:

Citarsmbmount //192.168.1.5/docsxp /server/dadosXP -o username=raidicar,password=123456

em que neste caso envolve o ip da máquina quando o DHCP me der um outro novo para a maquina em questão lá se vai os backups, ou entao tenho de ir ver sempre que muda o ip e mudar a linha de comando, ou entao mais fácil que é o que vou fazer é uma reserva no dhcp para cada máquina em que quero que os dados sejam guardados.

raidicar

Não vai precisar do servidor dns, se sua rede é dhcp, creio que o dns já vai para os micros da rede, pode apenas alterar o ip pelo nome do micro que não terá problema.
se quiser realizar um teste, digite no servidor ubuntu na barra de endereços do nautilus, o comando: smb://nomedomicro.
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.

estrafalhote

muito obrigado pela dica  ;)

já estive a experimentar e ja funciona

tenho agora outra dúvida.

E se por exemplo isto está a copiar os ficheiros e eu desligo o pc de onde ele está a copiar? o que acontece?
o servidor vai ficar à espera que o pc seja ligado outra vez, ou acaba por ali e da próxima vez que o scipt correr copia o que falta?

raidicar

Se desligar o computador cliente, a cópia é finalizada, mesmo não estando completa.
Ao ligar novamente o computador, a cópia começa do inicio assim que o comando ou script for novamente executado, no caso desse script especifico, a cópia volta a correr a cada 30 minutos, dando falha quando o micro estiver desligado e copiando quando o micro estiver ligado, ou seja, o servidor não fica a espera da volta da maquina para continuar de onde parou, a cópia é finalizada e será novamente efetuada, do inicio,  em 30 minutos. Mas, como a cópia é INCREMENTAL, ao começar do inicio, os arquivos que não sofreram alteração desde a ultima cópia não são copiados, pois são iguais na origem e destino, com mesmo tamanho e data de alteração. Tenha essa cópia sido finalizada com sucesso ou falha, esses arquivos serão ignorados.
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.

estrafalhote

Citação de: raidicar online 13 de Maio de 2009, 20:23
Se desligar o computador cliente, a cópia é finalizada, mesmo não estando completa.
Ao ligar novamente o computador, a cópia começa do inicio assim que o comando ou script for novamente executado, no caso desse script especifico, a cópia volta a correr a cada 30 minutos, dando falha quando o micro estiver desligado e copiando quando o micro estiver ligado, ou seja, o servidor não fica a espera da volta da maquina para continuar de onde parou, a cópia é finalizada e será novamente efetuada, do inicio,  em 30 minutos. Mas, como a cópia é INCREMENTAL, ao começar do inicio, os arquivos que não sofreram alteração desde a ultima cópia não são copiados, pois são iguais na origem e destino, com mesmo tamanho e data de alteração. Tenha essa cópia sido finalizada com sucesso ou falha, esses arquivos serão ignorados.


ok ;) era isso que eu pensava.

muito obrigado pelas dicas, quando tiver alguma dúvida posto aqui.