Archive for the 'Debian' Category
Backup centralizado com rsync
Primeiro precisamos instalar o servidor de backup rsync
apt-get install rsync
Depois insira as configurações abaixo em /etc/rsyncd.conf
vim /etc/rsyncd.conf
# user/group de execução do daemon
uid = user
gid = user
log file = /var/log/rsyncd.log
# módulo de backup
[modname]
# diretório do backup, se necessário crie outros módulos
path = /home/user/backup
# usuários autorizados para o backup
auth users = user
# arquivo de usuário e senha
secrets file = /etc/rsyncd.secrets
# permite gravação
read only = false
# evita que as sessões de backup sejam listadas para outros usuários
list = false
hosts allow = 192.168.0.0/24
transfer logging = yes
log format = %t: host %h (%a) %o %f (%l bytes). Total %b bytes.
# eof
Depois de finalizada as confs, é necessário criar usuário e senha.
vim /etc/rsyncd.secrets
user:senha
chmod 600 /etc/rsyncd.secrets
chmod 600 /etc/rsync.conf
E por último habilite a inicialização do servidor rsync
vim /etc/default/rsync
RSYNC_ENABLE=true
Basta apenas inicializar o seu servidor de backup
/etc/init.d/rsyncd start
Para o rsync client não é necessário realizar nenhuma configuração, crie um arquivo com a senha do usuário de backup no rsync server
vim /etc/rsync.secrets
senha
chmod 600 /etc/rsync.secrets
Depois execute o comando para backup
rsync -Cravzp –delete –password-file=/etc/rsync.secrets /backupdir user@host::modname/
OBS.:
* Para cliente rsync Windows pode-se utilizar o DeltaCopy
* É possÃvelo realizar as criações de mais diretórios de backup, crie mais uma sessão no seu arquivo de configuração com por exemplo “[modname2]” e realize pequenas alterações como diretório para backup, usuário e senha. Não sendo necessário a criação de outro arquivo rsyncd.secrets, pois os usuários serão controlados através da permissões de acesso e da diretiva “auth users”.
* Também é possÃvel realizar cópias com o rsync através do ssh com o seguinte comando:
rsync -Cravzp /diretorio_origem sshuser@host:/diretorio/destino
* É por útimo podemos também sincronizar diretórios locais
Comments are off for this postrsync -Cravzp /diretorio/current /diretorio/sync
Filesystem superblock
Os blocos no filesystem são utilizados para duas diferentes finalidades.
Muitos blocos armazenam dados dos usuários
E alguns blocos em todos os filesystem armazem filesystem metadata, que é basicamente a descrição da estrutura do filesystem.
Onde cada filesystem contém um superblock que contém informações como tipo do filesystem, tamanho, status, estruturas de metadados e etc.
Isto é muito importante pois em uma situação de emergência é possÃvel utilizar o backup superblock para recuperar o primário.
O camando abaixo exibe localização do primário e backup superblock
dump2fs /dev/sda3 | grep -i superblock
Quando você utiliza um filesystem em falha você pode corromper toda a estrutura de dados do filesystem.
Você pode corrigir este problema da seguinte forma (assumindo que a partiço /dev/sda3 é o filesystem /home)
umount /home
e2fsck -f /dev/sda3
Supondo que o comando não encontrou e superblock e retornou um erro, é possÃvel contornar este problema utilizando o backup superblock. A localização do backup superblock denpende do tamanho dos blocos do filesystem.
=> 1K blocksize, no bloco 8193
=> 2K blocksize, no bloco 16384
=> 4k blocksize, no bloco 32768
Também podemos tentar localizar a localização do backup superblock com o comando
mk2fs -n /dev/sda3
ou
dump2fs /dev/sda3 | grep -i superblock
Para reparar o filesystem através do backup superblock utilizamos o seguinte comando
e2fsck -f -b 8193 /dev/sda3
OBS.: é recomendado que se faça um backup do filesystem antes de utilizar o e2fsck.
Comments are off for this postdd if=/dev/sda3 of=/opt/backupsda3.img
Criando uma partição ramdisk
A partição ramdisk é utilizada para leitura e gravação de dados, mas lembrado que a mesma é volátil (utiliza como gravação a memória RAM). Os dados contidos nesta partição ficam gravados enquando o sistem não é reiniciado.
Este tipo de partição é bastante útil caso você tenha apenas uma partição no seu Linux e precise de realizar backup de alguns arquivos porque o seu filesystem se encontra em read-only.
Primeiro passo criamos um device de 10MB
dd if=/dev/zero of=/dev/ram0 bs=1k count=10240
mk2fs -v -m 0 /dev/ram0 10240
mount -t ext3 /dev/ram0 /mnt
Assim teremos um ramdisk de 10MB e montando no /mnt como read-write
OBS.: Não desmonte o seu filesystem até que tenha realizado o backup dos dados necessário.
Comments are off for this postBackup de partições
Esta imagem pode ser criada de dua formas.
Primeira via dd
dd if=/dev/sda1 of=/tmp/backupsda1.img
Segunda utilizando cp
cp /dev/sda1 /tmp/partition
mkdir /mnt/espelho
mount -t ext3 -o loop /tmp/partition /mnt/espelho
Isto garante que você tenho um backup completo da sua partição, caso aconteça algum imprevisto com o seu filesystem.
Comments are off for this postFilesystem Inodes
O fundamental conceito de Linux filesystem é que cada objeto no filesystem é representado por um inode.
Onde os objetos apresentam atributos como: tipo de arquivo, tamanho de arquivo, permissões, ACLs e etc.
Todas estas informações estão guardadas no inode do arquivo, onde cada inode é identificado por um inode number no filesystem (este número é único, por isto index node).
Para visualizar o inode number de um determinado objeto
ls -i /var/log/syslog
SaÃda:
21250 /var/log/syslog
Pode também utlizar o comando stat para verificar o inode number e os atributos do objeto.
stat /var/log/syslog
SaÃda
File: `/var/log/syslog`
Size: 34520 Blocks: 20 IO Block: 4096 regular file
Divece: 341h/833d Inode: 21250 Links: 0
Access: (0644/-rw-r–r–) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2007-10-10 00:30:02. 000000000 +530
Modify: 2007-10-10 00:30:03. 000000000 +530
Change: 2007-10-10 00:30:03. 000000000 +530
Exemplo de utilização:
touch /tmp/\”teste*
Você não vai conseguir remover este tipo de arquivo, pois em seu nome contém caractes de controle e também caractes especiais.
Removendo este arquivo:
ls -il /tmp
SaÃda:
695523 -rw-r–r– 1 root root 0 2007-10-10 00:35 “teste*
Usaremos o comando find para excluir por inode number
find . -inum 695523 -exec rm -i { } \;
OBS.:
Também é possÃvel utilizar \ antes de um caracter especial para utilizar o comando rm normalmente.
rm “\”teste\*”
Também é possÃvel recuperar um arquivo excluÃdo pelo seu inode number utilizando o comando debugfs da seguinte forma:
Execute o comando apontando para a partição onde se encontrava o arquivo excluÃdo.
debugfs /dev/sda3
Se desejar modificar os inodes diretamente utilize
debugfs -w /dev/sda3
Listando os inodes apagados
debugfs: lsdel
Como a saÃda será muito grande é necessário grava em algum arquivo
debugfs: quit
# echo lsdel | debufs /dev/sda3 > /tmp/inode.out
Para visualizar uma melhor descrição do inode desejado utilize
debugfs: stat <695523>
Caso possua muitos arquivos para verificar utilize:
cut -c1-6 /tmp/inode.out | grep “[0-9]” | tr -d ” ” > /tmp/inode.number
Para visualizar os detalhes de cada inode number:
sed ‘/^.*$/stat <\0>/’inode.number | debugfs /dev/sda3 > /tmp/inodes.detail
Agora sabendo quais inodes queremos vamos recupar os arquivos
debugfs: start <695523>
debugfs: dump <695523> /tmp/inodefile.out
Se por acaso ficou algum lixo no arquivo podemos, recupera-lo da seguinte maneira.
dd if=/tmp/inodefile.out of=/tmp/inodefileresize.out bs=6050 count=1
OBS.:
O valor do bs no comando dd, corresponde ao valor contido no campo Size: na saÃda do comando dubugfs: dump <695523>.
Os inodes se aplicam a todos os sistemas Linux e Unix.
Comments are off for this postConfigurando uma interface de rede TUN/TAP
Primeiro carregamos o módulo necessário.
modprobe tun
Depois criamos a interface tap:
tunctl -t tap0 -u login
ip link set up dev tap0
Para que a interface tap0 seja iniciada automáticamente é necessário adicionar as configurações abaixo em /etc/network/interfaces:
auto tap0
iface tap0 inet dhcp
tunctl_user login
A entrada “login” é relacionada ao usuário que irá carregar a interface de virtualização, caso este usuário seja o root estas entradas não são necessárias.
Havendo algum
Pronto sua interface tap, esta finalizada.
Configurando interface Bridge
Instação dos pacotes necessários para configuração de uma interface bridge.
apt-get install bridge-utils uml-utilities
Primeiro criamos a bridge
brctl addbr br0
brctl addif br0 eth0 eth1
Depois adicionamos as seguintes configurações no aquivo /etc/network/interfaces
auto br0
iface br0 inet dhcp
bridge_ports eth0 eth1auto eth0
iface eth0 inet manualauto eth1
iface eth1 inet manual
Depois basta realizar um restar nas interfaces de rede:
/etc/init.d/networking restart
OBS.: A configuração acima foi realizada para se utilizar com servidor DHCP podendo ser alterada para IP Static.
Comments are off for this postDHCP Failover
Este é um sistema especifico de servidor DHCP Master e Slave, onde havendo falha no servidor DHCP Master, a distribuição e o controle de IP passa a ser gerênciado pelo servidor DHCP Slave.
Para criar este contexto é necessário realizar os seguintes passos: (deve ser realizado nos dois servidores)
apt-get install dhcp3-server
Após o “apt” concluir a instalação é necessário realizar a configuração dos servidores DHCP Master e Slave.
No servidor DHCP Master:
Adicione a configuração abaixo no arquivo /etc/dhcp3/dhcpd.conf
ddns-update-style none;one-lease-per-client true;option domain-name "meudominio.com";option domain-name-servers 192.168.0.4, 192.168.0.5;option subnet-mask 255.255.255.0;default-lease-time 300;max-lease-time 300;authoritative;failover peer "dhcp" {primary;address 192.168.0.2;port 519;peer address 192.168.0.3;peer port 520;max-response-delay 60;max-unacked-updates 10;mclt 600;split 128;load balance max seconds 3;}include "/etc/dhcp3/dhcpd.master";
Depois crie o arquivo /etc/dhcp3/dhcpd.master e adicione as configurações abaixo:
subnet 192.168.0.0 netmask 255.255.255.0 {pool {failover peer "dhcp";range 192.168.0.11 192.168.0.254;deny dynamic bootp clients;}option routers 192.168.0.1;}
No servidor DHCP Slave:
Adicione a seguinte configuração no arquivo /etc/dhcp3/dhcpd.conf
ddns-update-style none;one-lease-per-client true;option domain-name "meudominio.com";option domain-name-servers 192.168.0.4, 192.168.0.5;option subnet-mask 255.255.255.0;default-lease-time 300;max-lease-time 300;authoritative;failover peer "dhcp" {secondary;address 192.168.0.3;port 520;peer address 192.168.0.2;peer port 519;max-response-delay 60;max-unacked-updates 10;}include "/etc/dhcp3/dhcpd.slave";
Depois crie o arquivo /etc/dhcp3/dhcpd.slave com as mesmas configurações do arquivo dhcpd.master.
Após basta fazer um start no serviço DHCP em ambos os servidores.
# /etc/init.d/dhcp3-server start
OBS.:
Para realizar testes, basta realizar um stop em um dos servidores DHCP
# /etc/init.d/dhcp3-server stop
E acompanhar os logs através do /var/log/messages
# tail -f /var/log/messages
Outra dica é se precisarmos saber quais IPs foram fornecidos pelo servidor DHCP para o clientes basta verificar o arquivo dhpcd.leases
# less /var/lib/dhcp3/dhcpd.leases
Se o arquivo não for encontrado, crie um arquivo em branco e realize o restart do serviço DHCP.
Comments are off for this post# touch /var/lib/dhcp3/dhcpd.leases
Monitorando No-Breaks TS Shara
Após conectar o No-Break no servidor corretamente, utilizamos o cdrom que vem juntamento com o mesmo (caso não tenha vindo nenhum cdrom é possÃvel realizar o download do mesmo no site do fabricante).
mount /media/cdrom
Localize onde se encontra o software powernt para linux e descompacte o mesmo.
tar -zxvf /media/cdrom/caminho/powernt-versao.tar.gz -C /usr/src/
Depois realizamos a compilação do powernt
cd /usr/src/powernt
./configure && make && make install
O diretório padrão de instalação é em “/usr/local/ “.
Acesse o diretório padrão do mesmo, no meu caso:
cd /usr/local/tsshara/
Vamos colocar o daemon na inicialização do Debian.
ln -s /usr/local/tsshar/upsd.sh /etc/init.d/upsd
update-rc.d -n /etc/init.d/upsd defaults
E finalizamos iniciando o daemon:
/etc/init.d/upsd start
A configuração é bem simples, no próprio daemon.
vi /usr/local/apc/upsd.sh
É necessário alterar três parâmetros, bem simples também.
temp_nobreak=”-2″; #valor default
temp_sistema=”-15″; #valor default
port_serial=”/dev/ttyS0″; #porta serial – /dev/ttySx
OBS.:
Procedimento realizado em Debian 3.1 r2 e com No-Break TS Shara UPS Professional.
Disponibilizei para download uma versão que não precisa de compilação, basta apenas seguir os procedimentos abaixo:
Download source
Descompacte o arquivo tgz
tar -zxvf upsd.tgz -C /usr/local/
Depois basta seguir os passos do tutorial, posterior a compilação.
OBS.: Lembrando que o caminho agora será “/usr/local/apc”.
Comments are off for this postMonitorando temperatuda da CPU
Vamos instalar o pacote responsável por este monitoramento.
apt-get install lm-sensors
Depois devemos verificar quais módulos do kernel precisaremos carregar para que o lm-sensor funcione.
sensors-detect
Basta apenas confirmar “yes” para todas as opções.
Depois carregue os módulos necessários.
Exemplo:
modprobe i2c-i801
modprobe lm85
modprobe eeprom
Depois é só digitar o comando:
sensors
Para acompanhar em tempo real:
watch sensors
Para acompanhamento on-line, insta-le o phpsysinfo e habilite o suporte ao lm-sensors.
apt-get install phpsysinfo
Se já estiver instalado, basta reconfigurar o pacote.
dpkg-reconfigure phpsysinfo
Depois acesse:
http://localhost/phpsysinfo
OBS.: O lm-sensors realiza o monitoramento da temperatura da CPU, Voltagem e rotação dos Clusters (Fan).