Backup Linux

Considero essa forma a mais eficiente e elegante de se fazer um backup. Pois é um backup automático incremental com controle de versão e gera logs para controle/monitoramento.

Utilizo para isso os softwares LIVRES: SSH, CRON, RSYNC. A ideia é ter dois servidores o de produção e o de backup, o servidor de backup deve fazer semanalmente uma copia de varias pastas do servidor da produção. Cada copia deve ser datada e ter um arquivo do log da copia também datado. Essas copias são na verdade copias com hardlink do Linux a ideia é copiar o conteúdo do ultimo backup para um nova pasta com “cp -l ” e depois atualizar ela com o servidor usando o rsync, assim teremos um backup incremental e versionado por data! Sem falar que economizamos muito espaço em disco, banda de rede e tempo de backup com esse procedimento.

ver : http://www.vivaolinux.com.br/artigo/Backups-remotos-com-rSync-e-chaves-SSH

Por partes:

1 – SSH com autenticação via chaves publica/privada:

http://ramonrdm.wordpress.com/2011/08/16/autenticacao-com-chaves-publicaprivada-no-ssh/

2 – Instalação do Rsync:

4 – Criação do script de backup

bkp incremental hardlinks:

#!/usr/bin/env bash
#
# Faz backups incrementais de diretorios em um servidor remoto utilizando rsync e
# hardlinks para economia de banda e espaço em disco.
#
# Por Vinicius Figueiredo <viniciusfs [arroba] gmail.com>
# Dominio Publico
#

SERVER="servidor.com.br"
DIRS_TO_COPY="/var/www /etc"
BACKUP_DIR="/backup"
RETENTION=15

DATE=`date +%Y%m%d`
LOG="${0}_${DATE}.log"

CURRENT_BACKUP="${BACKUP_DIR}/${DATE}"

echo "Iniciando script em `date`" > ${LOG}

if [ -e ${BACKUP_DIR}/last ]; then
    LAST_BACKUP=`cat ${BACKUP_DIR}/last`

    if [ -d ${LAST_BACKUP} ]; then
        echo "Ultimo backup encontrando, linkando arquivos..." >> ${LOG}
        cp -la ${LAST_BACKUP} ${CURRENT_BACKUP} >> ${LOG} 2>&1
    fi
else
    echo "Nenhum backup anterior encontrado, criando diretorio para backup atual..." >> ${LOG}
    mkdir ${CURRENT_BACKUP} >> ${LOG} 2>&1
fi

for dir in ${DIRS_TO_COPY}; do
    echo "Iniciando backup de ${SERVER}:${dir}" >> ${LOG}
    rsync -av --delete ${SERVER}:${dir} ${CURRENT_BACKUP} >> ${LOG} 2>&1
done

echo ${CURRENT_BACKUP} > ${BACKUP_DIR}/last

for dir in `find ${BACKUP_DIR} -maxdepth 1 -type d -mtime +${RETENTION}`; do
    echo "Removendo backup ${dir}" >> ${LOG}
    rm -rf ${dir} >> ${LOG} >> ${LOG} 2>&1
done

5 – Automatizando o backup com o Cron

http://ramonrdm.wordpress.com/2011/09/06/cron-agendando-tarefas/

Usando rsync:

http://servidorlinux.wordpress.com/2008/02/02/backup-com-rsync-sem-senha/

http://www.dicas-l.com.br/arquivo/como_programar_backup_com_rsync_e_cron_de_maneira_rapida_e_simples.php

http://www.vivaolinux.com.br/artigo/Backup-com-Rsync

http://www.vivaolinux.com.br/artigo/Sistema-de-backup-com-rsyncd

Incremental:

http://www.ultrav.com.br/2008/11/11/backup-incremental-com-rsync-e-hardlinks/

http://blog.liquuid.net/2008/05/11/time-machine-no-linux-com-rsync/

outra opcao:

http://www.dicas-l.com.br/arquivo/script_shell_de_backup_incremental.php

http://www.dicas-l.com.br/cantinhodoshell/cantinhodoshell_20070130.php

http://www.vivaolinux.com.br/script/Backup-Remoto-com-rsync-automatico-para-varias-maquinas-sem-senha./

http://www.jveweb.net/en/archives/2011/02/using-rsync-and-cron-to-automate-incremental-backups.html

Acesso root iomega ix4-d200

Oi! A baixo como consegui acesso root a esse equipamento de NAS ix4-d200 da iomega.

Instalei o htop para monitorar a atividade tbm entre outras coisas 🙂

vc pode habilitar o ssh caso não esteja habilitado em?

ip-nas-iomega/diagnostics.html

ou ainda se for uma versão antiga:

ip-nas-iomega/support.html

depois é só acessar via ssh com:

user: root

senha: soho+sua senha admin

exemplo: senha admin=1234, senha root será: soho1234

Fontes:

http://vincesoft.blogspot.com.br/2012/01/how-to-ssh-into-your-iomega-storcenter.html

http://ubuntu4us.corp.eng.br/artigos/configuracao-de-hardware/network-attached-storage/acesso-ssh-ao-iomega-ix2-200-cloud-edition

http://blog.vuksan.com/linux/2010/04/28/customizing-iomega-storcenter-ix4-200d-with-ipkg/

http://vincesoft.blogspot.com.br/2012/01/how-to-install-software-into-your.html

 

 

 

Syncthing compartilhando e sincronizando arquivos

Para quem já usou o BTsync e agora procura uma nova solução gratuita aqui vai o syncthing!

Página oficional:

https://syncthing.net/

Instalar(like deb):

http://apt.syncthing.net/

Start:

Em aplicativos de sessão coloque o comando:

  • Command: /path/to/syncthing/binary -no-browser -home="/home/your_user/.config/syncthing"

fonte: http://docs.syncthing.net/intro/getting-started.html

Caso use um servidor deb para syncar faça isso:

https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-syncthing-to-synchronize-directories-on-ubuntu-14-04

Inicio automático nos derivados do Ubuntu:

http://docs.syncthing.net/users/autostart.html#linux

 

Abraços!

 

Verificações de disco

Ferramentas:

Gerenciador grafico de disco:

sudo apt-get install gsmartcontrol

Smartmontools:

apt install smartmontools

lsscsi

apt install lsscsi
Comandos:

Para fazer teste simples:

# smartctl -t short /dev/sda

Verificar os testes:

# smartctl -l selftest /dev/sda

Diagnostico rápido:

# smartctl -H /dev/sda

teste longo:

# smartctl –test=long /dev/sdb

Teste de tempo e performance:

# smartctl -c /dev/sda

log de erros:

# smartctl -l error /dev/sda

Badblocks

http://www.diolinux.com.br/2014/05/verificando-badblocks-no-ubuntu.html

 

Fontes:

http://www.diolinux.com.br/2014/05/verificando-badblocks-no-ubuntu.html

http://www.hardware.com.br/artigos/monitorar-smart/

 

 

 

Criando um HD inicializavel a partir de uma ISO

descobri a pouco tempo um comando bom pra criar um disco de inicialização pra instalar o linux via um hd ou pendrive.
Os programas só servem pra instalar em pendrive mas eu tava com problema pra botar o ISO num hd pra instalação.

Comando:

$ sudo dd if=/home/usuario/Downloads/linuxmint-17-cinnamon-64bit-v2.iso of=/dev/sdc oflag=direct bs=1048576

o sdc era o meu hd externo, só que ele apaga tudo que ta dentro dele

 

Fonte:

Anselmo Junior

$grep -n 'texto' arquivo -r

grep é um aplicativo para linha de comando de sistemas Unix/Linux que faz buscas no conteúdo dos arquivos

-Wikipedia

Exemplos

Busca simples:

$ grep ‘joao’ arquivo.txt

Recursiva

$ grep ‘texto’ /etc/* -r

Mostrando as linhas:

$ grep -n ‘joao’ arquivo.txt

fontes:

http://www.vivaolinux.com.br/artigo/Usando-grep-e-egrep?pagina=2

http://ndvo.blog.br/pt-br/gnulinux/como-procurar-por-uma-string-em-v%C3%A1rios-arquivos/

Git e Github

“Git pronunciado [git] é um sistema de controle de versão distribuído e um sistema de gerenciamento de código fonte, com ênfase em velocidade. O Git foi inicialmente projetado e desenvolvido por Linus Torvalds para o desenvolvimento do kernel Linux, mas foi adotado por muitos outros projetos” – Wikipédia

O GitHub é um repositório remoto de uso free para códigos abetos.(tem outros planos tbm)

Instalação:

$ apt-get install git git-core

Criando um novo repositório:

$ mkdir projeto &&  cd projeto

$ touch readme.md

$ git init

$ git add readme.md

$ git commit -m “primeiro commit”

Aqui estou adicionando um repositório remoto com github, logico vc já deve ter criado ele lá:

git remote add origin https://github.com/ramonrdm/projeto.git

enviando as mudanças:

$ git push -u origin master

Se você já tem um projeto e deseja colocar os arquivos existentes dentro da pasta faça assim:

$ git add *

$ git comit -m “add todos os arquivos”

$ git push -u origin master

Esse tutorial é muito bom e prático:

http://rogerdudler.github.io/git-guide/index.pt_BR.html

Fontes:

http://codexico.com.br/blog/linux/tutorial-simples-como-usar-o-git-e-o-github/

http://www.frustrado.com.br/main/index.php/Tutorial:_Git_b%C3%A1sico

http://web-mister.blogspot.com.br/2012/08/como-criar-ou-sincronizar-um.html

http://winireis.wordpress.com/2012/09/22/tutorial-instalando-o-git-e-utilizando-o-github-no-ubuntu-12-04/

http://git-scm.com/book/pt-br/Git-Essencial-Obtendo-um-Reposit%C3%B3rio-Git

http://blog.jesuejunior.com/aprendendo-github-primeiros-passos/