:::: MENU ::::
Mostrando postagens com marcador backups. Mostrar todas as postagens
Mostrando postagens com marcador backups. Mostrar todas as postagens

quinta-feira, 3 de dezembro de 2015

Fala queridos!

Fiz esse script para preparar os hosts que receberão o agente do HP Data Protector de lá da empresa.
Percebam que ele:
Permite que o host servidor (de onde você vai executar os comandos) consiga logar no host cliente sem autenticação
Edita arquivos
Envia arquivos
Instala pacotes
Configura serviços

Tenham esse script como referência. Mudem como preferir. Usem a criatividade! :)


#!/bin/bash
# Instala software cliente de backup
# Raul Libório, raul.liborio@solutis.com.br
# 1.0

AUTH_KEYS_DIR="/root/.ssh"
AUTH_KEYS="$AUTH_KEYS_DIR/authorized_keys"
AUTH_ID="$AUTH_KEYS_DIR/id_rsa.pub"
DNSCLIENTE=$1
PASSWD="asdfghjklç"
SSH="sshpass -p "$PASSWD" ssh -o "StrictHostKeyChecking=no" root@$DNSCLIENTE"
SCP="sshpass -p "$PASSWD" scp -o "StrictHostKeyChecking=no""
DEPENDENCIAS="yum -y install xinetd rpm libstdc++ rsh-server glibc rsync"
RESPOSTA_OK="$( date ) - Iniciando instalacao no cliente $DNSCLIENTE"
RESPOSTA_NO="$( date ) - Instalacao cancelada pelo usuario $USER no host $DNSCLIENTE"
RESPOSTA_HOST_ERR="Use o FQDN do host. Exemplo: $(nslookup $DNSCLIENTE | awk /name/'{print $NF}')"
LOG="/var/log/hp_dataprotector_shell-installer.log"

# Testa se $1 recebeu um nome de host valido - o HP Data Protector so aceita FQDN
echo $1 | grep -q '.solutis.net.br'
[ $? != "0" ] && echo "$RESPOSTA_HOST_ERR" && exit 2

# Confirmacao se quer continuar a execucao do script
read -p "Deseja preparar o host $1 para instalar o HP Data Protector? " RESPOSTA
[ $RESPOSTA != "y" ] && echo $RESPOSTA_NO &>> $LOG && exit 1 || echo "$RESPOSTA_OK" &>> $LOG

# Desabilitar SELinux
$SSH sed -i 's/enforcing/disabled/' /etc/selinux/config

# Cria o diretorio $AUTH_KEYS_DIR caso ele nao exista
$SSH "mkdir $AUTH_KEYS_DIR 2> /dev/null"

# Copia o $AUTH_ID para o $DNSCLIENTE
$SCP $AUTH_ID root@$DNSCLIENTE:/tmp

# Adiciona $AUTH_ID ao $AUTH_KEYS
$SSH "touch $AUTH_KEYS"
$SSH "cat /tmp/id_rsa.pub >> $AUTH_KEYS"

# Instala as depenencias do HP Data Protector
$SSH $DEPENDENCIAS

# Habilite os servicos necessarios
$SSH "chkconfig rexec on"
$SSH "chkconfig rsync on"
$SSH "chkconfig rsh on"
$SSH "service xinetd restart"

# Confirmacao da execucao
echo "$( date ) - Host $DNSCLIENTE preparado com sucesso." &>> $LOG
exit 0

domingo, 3 de junho de 2012

Imaginemos a situação:
Você possui um servidor que recebe os arquivos de backup, eles são guardados por 30 dias e depois são removidos, liberando espaço para os mais novos. Ah, lembre-se de ter um log dos arquivos removidos ;)
Um modo fácil de fazer essa rotação é guardando os backups em pastas por mês, por exemplo, todos os arquivos de Janeiro ficarão no diretório 01, Fevereiro no 02 e por aí vai...
Mas, caso não seja possível fazer isso, vamos montar um simples script para executar essa tarefa :)


#!/bin/bash
# Remove arquivos maiores que 30 dias e gera um log
FILENAME=FILES_$(date +%Y%m%d%H%M%m).log
find . -mtime +30 -exec echo {} \; > $FILENAME
rm -rfv $(cat $FILENAME)

A lógica é simples:
Na variável, eu crio um arquivo que possui um prefixo e como sufixo coloco:
  1. Ano, com 4 dígitos - %Y
  2. Mês, com 2 dígitos - %m
  3. Dia, com 2 dígitos - %d
  4. Horas, com 2 dígitos - %H
  5. Minutos, com 2 dígitos - %M
  6. Segundos, com 2 dígitos - %S

O Find irá buscar por arquivos que não modificados nos últimos 30 dias, exibindo os seus nomes e enviando o seu output para um arquivo, que será o log dos arquivos removidos naquele momento.

Após isso, o rm irá ler o arquivo gerado pelo find e removê-los um a um.

Mole né?

quarta-feira, 15 de junho de 2011

Nesse post, será mostrado como instalar o Bacula utilizando o banco de dados MySQL

Obtendo o bacula

No endereço http://www.bacula.org/en/?page=downloads vocês encontrarão várias versões do Bacula para download: tarballs, rpms, debpkgs, win32_64. Nesse tutorial, vamos fazer no método Warrior's Mode: Compilando \o/

wget http://ufpr.dl.sourceforge.net/project/bacula/bacula/5.0.3/bacula-5.0.3.tar.gz
tar xvf bacula-5.0.3.tar.gz
cd bacula-5.0.3
 

Compilando

Para a compilação, primeiro devemos satisfazer as dependências do Bacula:
zypper in gcc gcc-c++ libopenssl-devel mysql-community-server libmysqld-devel make
Se quiserem instalar com o BAT (Bacula Administration Tool), adicionem o libqt4-devel.


Caso você queira compilar para um outro sistema operacional, procure por pacotes similares. O que no openSUSE costumamos usar o -devel como sufixo na nomenclatura, em algumas distros utiliza-se o lib* como prefixo.

Enfim, continuando...

Com as dependências instaladas, utilizaremos alguns parâmetros na compilação. Eu costumo colocar-los em um arquivo .sh, acho que fica bem melhor do que fazer aquele catatau de parâmetros em uma linha. Fica uma merda pra gerenciar, porém quando colocamos em uma arquivo, ai a coisa muda! Um exemplo:


#!/bin/bash
# Parametros para compilacao do Bacula
# 14-06-2011

CFLAGS="-g -O2 -Wall" \
./configure \
--enable-smartalloc \
--with-mysql \
--with-dump-email=meu@email.com \
--with-job-email=me u@email.com \
--with-smtp-host=localhost \
--with-openssl \
--with-fd-password=VouNao \
--with-sd-password=QueroNao \
--with-dir-password=PossoNao

O que estamos definindo aqui:
--with-mysql = Usaremos o MySQL como database. O pacote libmysqld-devel é pré-requisito;
--with-openssl = Permite que seja utilizado TLS na comunicação entre o cliente-servidor
--with-fd-password = Senha do File daemon
--with-sd-password = Senha do Storage Daemon
--with-dir-password = Senha do Director Daemon
Eu estou definindo a senha logo aqui porque não gosto das senhas geradas automaticamente. Fico completamente azuado com aquela porrada de caracteres...

Se o seu Bacula for instalado em uma máquina com interface gráfica, instale o pacote devel do QT(libqt4-devel) e adicione o parâmetro --with-bat ao configure. Como isso geralmente não é trivial, não usaremos.
Depois da execução do ./configure, teremos a resposta do bacula:

Configuration on Tue Jun 14 11:44:49 BRT 2011:


Host: i686-pc-linux-gnu -- suse 11.4
Bacula version: Bacula 5.0.3 (04 August 2010)
Source code location: .
Install binaries: /sbin
Install libraries: /usr/lib
Install config files: /etc/bacula
Scripts directory: /etc/bacula
Archive directory: /tmp
Working directory: /var/bacula/working
PID directory: /var/run
Subsys directory: /var/lock/subsys
Man directory: ${datarootdir}/man
Data directory: /usr/share
Plugin directory: /usr/lib
C Compiler: gcc Linux)
C++ Compiler: /usr/bin/g++ Linux)
Compiler flags: -g -O2 -Wall -fno-strict-aliasing -fno-exceptions -fno-rtti
Linker flags:
Libraries: -lpthread -ldl
Statically Linked Tools: no
Statically Linked FD: no
Statically Linked SD: no
Statically Linked DIR: no
Statically Linked CONS: no
Database type: MySQL
Database port:
Database lib: -L/usr/lib -lmysqlclient_r -lz
Database name: bacula
Database user: bacula


Job Output Email: meu@email.com
Traceback Email: meu@email.com
SMTP Host Address: localhost


Director Port: 9101
File daemon Port: 9102
Storage daemon Port: 9103


Director User:
Director Group:
Storage Daemon User:
Storage DaemonGroup:
File Daemon User:
File Daemon Group:


SQL binaries Directory /usr/bin


Large file support: yes
Bacula conio support: no
readline support: no
TCP Wrappers support: no
TLS support: yes
Encryption support: yes
ZLIB support: yes
enable-smartalloc: yes
enable-lockmgr: no
bat support: no
enable-gnome: no
enable-bwx-console: no
enable-tray-monitor: no
client-only: no
build-dird: yes
build-stored: yes
Plugin support: yes
AFS support: no
ACL support: no
XATTR support: yes
Python support: no
Batch insert enabled: no

Verifique e veja se é isso mesmo que você quer. Caso algo esteja incorreto, altere o parâmetro e execute novamente o ./configure. Depois de tudo estar nos trinks, é hora do make && make install :D

make && make install
(Compila compila Compila compila Compila compila Compila compila...)

Enquanto ele compila, você pode ir assistir um videozin e talz... Ah, falando nisso, pra quem curte Dragon Ball Z, o pessoal do Gastação TV estão fazendo a tradução do DBZ Abridged! Saca o primeiro episódio:





SHHHOOOOWWWWWW!!!

Enfim, voltando :D

Após o make install, todos os arquivos estarão nos seus devidos lugares e prontos para rodarmos os scripts para criação de base de dados, tabelas e permissões na tabela. Então, já que vamos utilizar o banco de dados, que tal inciarmos o MySQL?
service mysql start

E seria bom também adicionar-lo na inicialização:
chkconfig mysql on
Após o banco subir, vamos aos scripts. São 3:
/etc/bacula/create_bacula_database
/etc/bacula/make_bacula_tables
/etc/bacula/grant_bacula_privileges

Após rodar os scripts, inicie o Bacula
bacula start

E  faça um simples teste:
bconsole

Caso apareça algo do tipo

Connecting to Director linux-sn99:9101
1000 OK: linux-sn99-dir Version: 5.0.3 (04 August 2010)
Enter a period to cancel a command.
*

Congratulations!!! Seu Bacula está pronto para ser configurado!!!

IF NO....
Caso ele não conecte e fique apenas tentando conexão, é porque sua configuração com o MySQL ainda está pendente. Verifique o arquivo /etc/bacula/bacula-dir.conf, procure pela linha do Catalog.

Se você definiu uma senha para o usuário do bacula, será necessário informar aqui também.:

Catalog {
Name = MyCatalog
dbdriver = "dbi:mysql"; dbaddress = 127.0.0.1; dbport = 3306
dbname = "bacula"; dbuser = "bacula"; dbpassword = ""
}

Sempre é bom verificar também o arquivo de log. Ele fica integrado ao /var/log/messages
Não esqueça de ver as portas. O comando netstat -napt poderá te ajudar.

Até a prox!

segunda-feira, 13 de junho de 2011

Ah! Agora sim podemos gravar nossos arquivos usando apenas simples comandos \o/
Depois de ler o post anterior (http://rauhmaru.blogspot.com/2011/06/como-configurar-o-seu-autochanger.html), provavelmente já estão com todos os dispositivos configurados e com a fita no ponto, prontinha pra mandar gravar seus 400GB de backup e esperar por mais ou menos umas 4 horas até a finalização do job. É, demora pra caralho...


Nesse post, será mostrado como gravar, fazer restore, listar e obter informações das fitas

Enfim, aos prometidos comandos:


Rebobinar o drive de fita:
mt -f /dev/st0 rewind

Backup do diretório /etc e /home com o comando tar
tar cjfv /dev/st0 /etc /home

Lembram das opções do tar?

  • c = create
  • j = compressão bzip
  • f = force
  • v = verbose

Dica do modafoca

Quando utilizamos o comando tar para fitas, lembre de uma coisa simples: Ao invés de passarmos o nome do arquivo a ser criado, por exemplo, backup.tar.gz, devemos apontar para o dispositivo de fita. Coloquem isso na cabeça :)

Encontre em qual bloco você está com o comando mt:
mt -f /dev/st0 tell

Mostre os arquivos gravados na fita. Duas maneiras:
A) tar tzf /dev/st0
B) tar tvf /dev/st0

Restaure o diretório /home, gravado na fita:
cd /
mt -f /dev/st0 rewind
tar xvf /dev/st0 /home

Descarregue a fita do drive
mt -f /dev/st0 offline

Exiba informações sobre seu drive de fita - Duas maneiras:
A) tapeinfo -f /dev/st0
B) mt -f /dev/st0 status

Você pode voltar ou avançar na fita com o próprio comando mt:
A) Ir para o final da última gravação:
mt -f /dev/st0 eod

B) Ir para a gravação anterior:
mt -f /dev/st0 bsfm 1

C) Avançar na gravação:
mt -f /dev/st0 fsf 1



Exemplo de Backup em fita

Para realizar um backup em múltiplas fitas, use o seguinte comando(backup do sistema de arquivos /home). Caso for utilizar somente uma fita, não insira o parâmetro M.
tar -cpMzvf /dev/st0 /home

Mais opções do tar? Sim!

  • p = preserve as permissões
  • M = Crie/liste/extraia arquivos multi-volume(multiplas fitas)
  • z = Compressão usando o gzip

O resto vocês já conhecem :)


Para comparar a fita de backup, execute:
tar dpMzvf /dev/st0 /home

E finalizando, para o restore...
tar xpMvf /dev/st0 /home

Caso precisem de mais ajuda, a manpage do tar é bastante útil. Ela também trata sobre backup em fitas. Vale a pena dar uma olhada.

domingo, 12 de junho de 2011


Mais um post preparatório para o Bacula :D


Pergunta simples: Como faço backup em fita no Linux?
Quando alguém faz uma pergunta, duas coisas vem na minha mente:


  • Ela não tem nenhuma ferramenta profissional configurada
    • Eu não quero configurar porra nenhuma, eu só quero gravar! ONLY THIS!!!
  • Ela quer fazer isso o mais breve possível
    • Comandos! Preciso de comandos!!!


Então... Depois de você identificar seu dispositivo de fita(caso tenha dúvidas, consulte o post anterior (http://rauhmaru.blogspot.com/2011/06/convencao-de-nome-de-tape-drives-no.html), é hora de "meter mão" :D


Nesse post será mostrado como configurar o seu autochanger.

O marco zero é fazer o hardware funcionar. Para fazer funcionar, você tem de conhecer.





O'RLY?
YA! RLY!
NO WAI!
YA! WAI!
I SEE!

OH! RLY?












Autochangers

Dell PowerVault 124T


Se você possui um autochanger (um dispositivo capaz de mover as fitas (sim, as fitas! Ele possui uma biblioteca para armazenamento de fitas dentro do próprio equipamento), você precisará primeiramente fazer o dispositivo de movimentação de fitas funcionar. O método fácil de fazer a identificação desse dispositivo é usando o comando lsscsi.
Vamos a um exemplo. O meu autochanger é um Dell PowerVault 124T. O output a seguir é do comando lsscsi:


[0:2:0:0]    disk    DELL     PERC H700        2.10  /dev/sda 
[1:0:0:0]    cd/dvd  TEAC     DVD-ROM DV-28SW  R.2A  /dev/sr0 
[3:0:0:0]    tape    IBM      ULTRIUM-HH3      93G7  /dev/st0 
[3:0:0:1]    mediumx DELL     PV-124T          0080  /dev/sch0
[6:0:0:0]    disk    Hitachi  HDS721010CLA332        /dev/sdb 



A linha verde mostra um disco rígido SATA;
A linha azul mostra um drive de DVD;
A linha laranja mostra o drive de fita, tipo auto rewind;
A linha vermelha é o nosso alvo. É o library. O dispositivo é o /dev/sch0.
A linha roxa é um disco SATA, externo

O Bacula tem como pré-requisito a configuração do comando mtx. Caso você não o configure, eis o erro que você tomará na cara assim que invocar o mtx:

belldandy:~ # mtx status

mtx: Request Sense: Long Report=yes
mtx: Request Sense: Valid Residual=no
mtx: Request Sense: Error Code=70 (Current)
mtx: Request Sense: Sense Key=Illegal Request
mtx: Request Sense: FileMark=no
mtx: Request Sense: EOM=no
mtx: Request Sense: ILI=no
mtx: Request Sense: Additional Sense Code = 49
mtx: Request Sense: Additional Sense Qualifier = 00
mtx: Request Sense: BPV=no
mtx: Request Sense: Error in CDB=no
mtx: Request Sense: SKSV=no
Mode sense (0x1A) for Page 0x1D failed
mtx: Request Sense: Long Report=yes
mtx: Request Sense: Valid Residual=no
mtx: Request Sense: Error Code=70 (Current)
mtx: Request Sense: Sense Key=Hardware Error
mtx: Request Sense: FileMark=no
mtx: Request Sense: EOM=no
mtx: Request Sense: ILI=no
mtx: Request Sense: Additional Sense Code = 44
mtx: Request Sense: Additional Sense Qualifier = 00
mtx: Request Sense: BPV=no
mtx: Request Sense: Error in CDB=no
mtx: Request Sense: SKSV=no
READ ELEMENT STATUS Command Failed 

Se esse é o seu output, zivudel manel :D Configure sua porra pra facilitar sua vida. O mtx requer que o seu dispositivo do changer esteja apontando para o dispositivo virtual /dev/changer. Esse procedimento é simples de se fazer, você precisa apenas usar o comando ln para criar o link do (no meu caso) /dev/sch0 para o /dev/changer:
ln -s /dev/sch0 /dev/changer
Após isso, vejamos a saída do mesmo comando:

Belldandy:~ # mtx status
  Storage Changer /dev/changer:1 Drives, 8 Slots ( 0 Import/Export )
Data Transfer Element 0:Full (Storage Element 6 Loaded):VolumeTag = 000011L3                        
      Storage Element 1:Full :VolumeTag=000010L3                        
      Storage Element 2:Full :VolumeTag=000002L3                        
      Storage Element 3:Full :VolumeTag=000003L3                        
      Storage Element 4:Full :VolumeTag=000004L3                        
      Storage Element 5:Full :VolumeTag=000005L3                        
      Storage Element 6:Empty
      Storage Element 7:Empty
      Storage Element 8:Full :VolumeTag=000001L3

O PV-124T possui 1 driver e 8 slots, com possibilidade de expansão. Nesse exemplo, temos uma fita no seu drive (slot 0) e 6 nos outros slots. Os slots 6 e 7 estão vazios (Douh!).


Após essa configuração e teste, vejamos agora como ficou o lsscsi. Vamos mostrar o output full, com o comando lsscsi -g:



[0:2:0:0]    disk    DELL     PERC H700        2.10  /dev/sda   /dev/sg1
[1:0:0:0]    cd/dvd  TEAC     DVD-ROM DV-28SW  R.2A  /dev/sr0   /dev/sg2
[3:0:0:0]    tape    IBM      ULTRIUM-HH3      93G7  /dev/st0   /dev/sg3
[3:0:0:1]    mediumx DELL     PV-124T          0080  /dev/sch0  /dev/changer
[6:0:0:0]    disk    Hitachi  HDS721010CLA332        /dev/sdb   /dev/sg0

A partir daqui, você já poderá configurar seu Bacula tranquilamente ou até mesmo fazer backups manualmente, que é o tema do nosso próximo post.

ps: Na verdade, esse post seria demonstrando como fazer o backup na mão, utilizando o tar e o mt, mas depois lembrei que em hardwares autochangers precisam estar configurados corretamente. Se eles não estiverem, nem um passo é dado. É uma merda! :P

Até :D
Fonte: NixCraft
Esse post tem como objetivo preparar-lo para implementação do Bacula, que será mostrado em breve :)

O Linux suporta SCSI, IDE e antigos floppy baseados para dispositivos de fita. cada dispositivo possui um nome como unidades de disco rígido. Digital Data storage(DDS), Digital Audio Tape(DAT) e Digital Linear Tape(DLT), todos são suportados pelo Linux e amplamente utilizados no dia-a-dia para fins de backup.

Nomes de dispositivos de fita SCSI

O drive ht provê interface para uma variedade de dispositivos de fita SCSI no Linux. A identificação do tipo de dispositivo é bastante simples:

  • Primeiro (auto rewind) dispositivo de fita: /dev/st0
  • Segundo (auto rewind) dispositivo de fita: /dev/st1
  • Primeiro non-rewind dispositivo de fita: /dev/nst0
  • Segundo non-rewind dispositivo de fita: /dev/nst1
Atualmente os dispositivos SCSI são os mais comuns. Vale lembrar que dispositivos SATA são bem parecidos com o SCSI. Se você pretende fazer um backup em fita utilizando o comando tar, provavelmente terá de apontar para o /dev/st0.

Nomes de dispositivos de fita IDE

O drive ht provê interface para uma variedade de dispositivos de tia no Linux. Assim como o SCSI, a identificação também é simples:

  • Primeiro (auto rewind) dispositivo de fita: /dev/ht0
  • Segundo (auto rewind) dispositivo de fita: /dev/ht1
  • Primeiro non-rewind dispositivo de fita: /dev/nht0
  • Segundo non-rewind dispositivo de fita: /dev/nht1


Dúvidas? Leiam a manpage do st :)

sábado, 11 de junho de 2011



"Tô eu aqui" futucando os arquivos do Bacula, quando me deparo com um tal de bacula.vim dentro do diretório scripts. Olhei com atenção e vi que era um arquivo de configuração de sintaxe feito especificamente para o Bacula! Show de bola :D


O procedimento que faremos aqui serve para qualquer outro .vim personalizados.
Lembre-se: $HOME é Variável de ambiente que referencia seu diretório home



1. Crie o diretório que irá armazenar seu bacula.vim:
mkdir -p $HOME/.vim/syntax

2. Insira o arquivo bacula.vim para dentro do $HOME/.vim/syntax:
Você poderá encontrar o arquivo bacula.vim dentro do tarball do Bacula. Por exemplo:
tar xvf bacula-5.0.3.tar.gz
cd bacula-5.0.3/scripts
cp bacula.vim ~/.vim/syntax/

3. Usando o vim (lógico!) abra um arquivo de configuração do Bacula, por exemplo, o bacula-dir.conf, bacula-fd.conf ou o bacula-sd.conf, carregue a sintaxe:
:set syntax bacula

A partir desse momento a sintaxe do Bacula está diferenciada :)

OBS: Caso queira que essa sintaxe esteja disponível para todos os usuários, coloque o arquivo de sintaxe dentro do diretório /usr/share/vim/current/syntax/



Mais Dúvidas com sintaxe no vim? RTFM! :)
http://vimdoc.sourceforge.net/htmldoc/syntax.html

quinta-feira, 19 de maio de 2011

Já que não gosto de trabalhar com algo que não conheço, busquei um pouco mais de informações sobre fitas magnéticas. Pra quem nunca utilizou, a parada é o seguinte:
Unidades de fita possui uma vida útil relativamente longa, alta capacidade de armazenamento e baixo custo, considerando GB/R$. São menores que discos rígidos convencionais (3.5) e são mais resistentes, tem termos de impactos.

Fita magnética (ou banda magnética) é uma mídia de armazenamento não-volátil que consiste em uma fita plástica coberta de material magnetizável. A fita pode ser utilizada para registro de informações analógicas ou digitais, incluindo áudio, vídeo e dados de computador.

Tipos de fitas

DDS

Digital Data Storage é uma fita de 4 mm em cassete, de tecnologia helicoidal, introduzida pela Sony e pela Hewlett-Packard, que utiliza a mesma tecnologia da fita DAT . Em sua versão mais recente, o DDS-4, essas fitas têm capacidades nativas de 20 GB, chegando a 40 GB em modo comprimido. Por causa do desgaste mecânico, os fabricantes destas fitas garantem sua confiabilidade por apenas 2.000 passagens pela cabeça de leitura/gravação, em condições ideais. Como em uma única operação da fita normalmente provoca mais de uma passagem pelo mesmo local, os fabricantes recomendam que a mesma fita seja usada em apenas cerca de 100-150 operações de cópia — em condições ideais. A cabeça de leitura do dispositivo sofre também desgastes, e tem uma expectativa de vida de 2.000 horas de uso.

Tipos comprimento da fita Capacidade
DDS 60m 1,2 GBytes
DDS 90m 2 GBytes
DDS2 120m 4 GBytes
DDS3 125m 12 GBytes
DDS4 150m 20 GBytes
DAT 72 170m 36 GBytes
DAT 160 150m 80 GBytes


DLT

DLT (acrônimo para Digital Line Tape) é um tipo de fita magnética desenvolvido pela Digital Equipment Corporation em dezembro de 1984 (atualmente Hewlett-Packard).
A mídia é garantida por trinta anos da data de armazenamento sob especificas condições ambientais; entretanto, elas são facilmente danificadas por má manipulação (queda ou armazenamento improprio).
Todos os leitores de fitas (S)DLT suportam a compressão de dados por hardware. O fator de compressão frequentemente usado é de 2:1 para textos; outros tipos de dados devem usar o fator de 1.3:1 até 1.5:1.

Tipos comprimento tamanho
DLT-IV 550m 40GBytes
DLT-VS1 560m 80GBytes
SDLT 550m 160GBytes

LTO

Linear Tape-Open - LTO é uma tecnologia de armazenamento de dados em fita magnética desenvolvida originalmente na década de 1990 como uma alternativa aos padrões abertos a formatos proprietários de fita magnética que estavam disponíveis na época. Seagate, a Hewlett-Packard, IBM e iniciou o Consórcio LTO, que dirige o desenvolvimento e gerencia de licenciamento e certificação dos fabricantes de mídia e mecanismo. O modelo de formulário-fator da tecnologia LTO atende pelo nome Ultrium, a versão original que foi lançado em 2000 e podia armazenar 100 GB de dados em um único cartucho. A versão mais recente foi lançada em 2010 e pode armazenar 1.5 TB no cartucho do mesmo tamanho. Desde 2002, a LTO tem sido a melhor escolha de formato de "fita" e é amplamente utilizada para pequeno e grande porte de sistemas computacionais, principalmente para Backup.

Tipos comprimento tamanho
LTO-1 609m 100GBytes
LT0-2 609m 200GBytes
LTO-3 680m 400GBytes
LTO-4 820m 800GBytes
LTO-5 846m 1.5TBytes


Gerações do padrão LTO

O próximo post será sobre operações com fita, utilizando comandos do Linux (mt, mtx e tar)
See ya!


Referências (acessadas em 19/Mai/2011):

sábado, 14 de maio de 2011

Caso vocês forem fazer a instalação do Bacula no openSUSE através do zypper ou YaST, podem se preparar para um susto quando forem incializar o bacula-dir:

Starting the Bacula Director daemonstartproc: cannot execute /usr/sbin/bacula-dir: Exec format error
failed
O Bacula, sabe Deus porquê, adiciona um arquivo vazio dentro do /usr/sbin/bacula-dir, fazendo com que toda chamada gere uma falha (óbvio).

Sim, e ai?

No meu caso, eu fiz uma instalação do Bacula utilizando o banco de dados MySQL, então, ao invés do bacula-dir vir normal, essas definições foram passadas para um seu amiguinho de diretório, o /usr/sbin/bacula-dir.mysql. Já imaginaram como resolver? Claro né! Mas vou passar um macete mais elegante ;D

Remova o lazarento
rm /usr/sbin/bacula-dir

Recrie o arquivo
/usr/sbin/update-alternatives --install \
/usr/sbin/bacula-dir bacula-dir /usr/sbin/bacula-dir.mysql 50

Não cheguei a testar mas o postgresql pode ter o mesmo problema.

sexta-feira, 13 de maio de 2011

Quem trabalha em um ambiente que possui uma equipe de desenvolvimento, por exemplo, desenvolvedores Java, sabe(ou deve imaginar) que o servidor que é utilizado no ambiente de desenvolvimento vai ter um tal de log que vai crescer nervosamente... Ah se vai...


No meu caso, tem um tal de Tomcat que consegue deixar o seu catalina.out com 1GB em 4 dias. Pra quem não entendeu, é o seguinte:
Um arquivo todo em ASCII com mais de 1GB

A primeira vez que eu vi, dei(lá ele) uns 30 puta-que-pariu e fui ver com os developers de lá, e de fato, a disgrama gera um log fil'daputa...

Mas enfim, para qualquer aplicação/serviço que gere log ou qualquer tipo de saída de texto, é possível controlar usando o logrotate.


WTF is logrotate?

Então padawans, o utilitário logrotate é projetado para simplificar a administração dos arquivos de log em um sistema que gera um monte de arquivos de log. O logrotate permite a rotação, compressão, remoção e envio de arquivos de log. O logrotate pode ser configurado para manipular um arquivo de log diariamente, semanalmente, mensalmente ou quando o arquivo de log atingir um determinado tamanho.[1]
Atualmente sua versão é a 3.7.9

E ai, Como eu configuro?

Vamos lá!
Primeiramente, conheça os arquivos:
/etc/logrotate.conf: É o principal. Aqui serão definidos os parâmetros principais do logrotate
/etc/logrotate.d/: Aqui colocamos os arquivos com as configurações específicas para os arquivos engraçadinhos. Tudo que estiver aqui, será interpretado.



Lista de opções do logrotate[2]:
  • compress - comprimir os logs.
  • compresscmd - comprimir os logs com especificação do comando a utilizar. O padrão é gzip.
  • uncompresscmd - definir o comando para descomprimir os logs. O padrão é gunzip.
  • compressext - especifica a extensão usada para o arquivo de log comprimido.
  • compressoptions - para possibilitar incluir opções aos comandos de compressão. Por exemplo: gzip -5. O padrão é a compressão máxima (-9).
  • copy - copia o log sem modificar o original.
  • copytruncate - copia o log e move o original para outro lugar.
  • create [mode owner group] - Este é o comando usado para a criação de um novo arquivo de log vazio após a rotação. Você pode alterar as permissões, o dono do arquivo e o grupo.
  • daily - rotacionar diariamente.
  • delaycompres - Atrasa a compressão do log para a próxima rotação.
  • extension [ext] - Inclui uma extensão para o arquivo de log. Se a compressão usada for a padrão a extensão será .gz.
  • ifempty - Rotaciona os logs mesmo quando vazios.
  • include [file or directory] - Indica outros arquivos de configuração ou diretórios que tenham arquivos de configuração para o logrotate.
  • mail - envia um email com logs extintos.
  • mailfirst - envia um email com os logs rotacionados.
  • maillast - envia um email com os logs que serão rotacionados, os logs originais.
  • missingok - não enviar mensagem de erro no caso de um arquivo de log não existir.
  • monthly - rotaciona os logs mensalmente.
  • nocompress/nocopy/nocopytruncate/nocreate/nodelaycompress/nomail - negativas aos comandos correspondentes.
  • nomissingok/noolddir/nosharedscripts/notifempty - negativas aos comandos correspondentes.
  • olddir [directory] - guardar as versões rotacionadas em outro diretório.
  • postrotate/endscript - comandos a serem executados após a rotação do log.
  • prerotate/endscript - comandos a serem executados antes da rotação do log, caso o log seja rotacionado.
  • firstaction/endscript - comandos a serem executados imediatamente antes dos prerotates comandos.
  • lastaction/endscript - comandos a serem executados depois daqueles invocados através do -postrotate.
  • rotate - comando para rotacionar os logs.
  • size - rotacionar os logs quando ultrapassarem o tamanho indicado.
  • sharedscripts - postrotate e prerotate serão executados para cada log que tenha a mesma identificação. Este comando faz com que sejam executados apenas uma vez.
  • start - inclui um número para a base dos logs rotacionados, por exemplo: start 0 - log.0.
  • tabooext [+] list - mudar a lista de extensões taboo.
  • weekly - rotacionar semanalmente.


logrotate.conf
# see "man logrotate" for details
# rotacione o log semanalmente
weekly

# keep 4 weeks worth of backlogs
## Mantenha os logs por 4 semanas
rotate 4

# create new (empty) log files after rotating old ones
## Crie um novo arquivo de log depois de rotacionar-los
create

# uncomment this if you want your log files compressed
## Descomente se quiser compactar o arquivo de log
#compress

# RPM packages drop log rotation information into this directory
## Esse eh o diretorio onde vamos adicionar nossos logrotate
include /etc/logrotate.d

# no packages own wtmp -- we'll rotate them here
/var/log/wtmp {
monthly
minsize 1M
create 0664 root utmp
rotate 1
}

# system-specific logs may be also be configured here.

Case: Tomcat

Dentro do diretório /etc/logrotate.d/, crie um arquivo, pode ser qualquer nome, por exemplo, apache-tomcat.
vim /etc/logrotate.d/apache-tomcat

/opt/apache/apache-tomcat/logs/* {
daily
missingok
rotate 5
size 2M
}

E traduzindo:
Aos arquivos de dentro do diretório /opt/apache/apache-tomcat/logs/, o logrotate rotacionará diariamente, mantendo por 5 semanas os arquivos. O tamanho máximo que cada arquivo irá alcançar será 2MB.

Logs crescem infinitamente e precisam de atenção. Usem a criatividade (e a lógica!) e gerencie seus logs!



Referências:
http://www.thegeekstuff.com/2010/07/logrotate-examples/

Posts populares