sexta-feira, 2 de outubro de 2009

GBU - Gerenciador de BackUps - versão 0.1.1 - Sistema para gerenciamento de backups em php+bash

===============================
[GBU - Gerenciador de BackUps]

Versão Beta 0.1.1
Licensa GPL
Autor André Oshiro Barcelos

GBU é um sistema para gerenciamento de backups feito em php+bash que realiza backup de servidores remotos via comando SCP.


===============================
[Tipos de backups realizados]

- arquivos
- diretórios
- dump de banco MySQL.


===============================
[Instalação]

Para instala-lo você deve possuir um servidor de backups com linux e o php5-cli instalado. Execute o arquivo do gbu com o comando install (ex.: php gbu.0-1-1.php install). Siga as mensagens que forem exibidas na tela.


===============================
[Cluster de storages de backup]

Você pode eleger mais de 1 servidor para efetuar os backups e manter a gerência centralizada, basta instalar o gbu em outros servidores e manter a lista de backups em 1 único.
Ex.:
Existem 2 servidores para backup: bkp1 e bkp2. Onde bkp1 é o nosso gerenciador e também storage; bkp2 é somente storage.
Efetuando "gbufes list" no bkp1

====================================================
ID HOST/ALVO STORAGE TIPO FREQ CIC ULTBKP
====================================================
1 web.aob.br#1 dire s:2 2 021009
/www/site /sto/hd01/ 000010
gbu/site 3600s

----------------------------------------------------
2 dns.aob.br#1 bkp2.aob.br dire s:6 2 021009
/etc/dns.conf /sto/hd01/gb 010203
u/dns 17s

----------------------------------------------------

Como podemos ver, nossa lista de backup está centralizada em bkp1.aob.br, e utilizamos o servidor bkp1.ufes.br como (quando oculto é assumido o host local) e o host bkp2.ufes.br como storage.


===============================
[Erros conhecidos]

- Erro ao copiar arquivos maiores de 60GB:
Se ao tentar efetuar backup de um arquivo/pasta maior que 60GB e o mesmo parar a cópia em 60GB, verifique o usuário gbufes criado na máquina de backup, o mesmo deve possuir a pasta /home/gbufes/.ssh criada com permissões de owner e grupo setadas para gbufes. Esse erro ocorre pois o fingerprint da máquina alvo não é escrito dentro do diretório /home/gbufes/.ssh, expirando a sessão do ssh a cada 1 hora e terminando a cópia do arquivo (cerca de 60GB são copiados em 1 hora numa rede FastEthernet).


===============================
[Ajude-nos a melhorar]
Para ajudar a melhorar o GBU, postem seus comentários, dúvidas, sugestões, bugs, ...


===============================
[Download GBU]

Clique aqui para baixar o GBU Versao 0.1.1

.

quarta-feira, 26 de agosto de 2009

Como adicionar monitoramento de partições no snmpd do linux

- Altere o arquivo /etc/snmp/snmpd.conf, descomente a linha:
.
.
.
disk / 10000
.
.
.
Nota: isso fara com que a particao / seja monitorada. 10000 informa que se a partição retornar um tamanho abaixo desse, um erro é iniciado.


- Para adicionar outras partições, acrescente novas linhas:
.
.
.
disk / 10000
disk /tmp 10000
disk /home 10000
.
.
.

- Utilize a mib UCD-SNMP-MIB::dskAvail para verificar o valor das partições:
Ex.: snmpwalk -v 1 -c trash12 hp8.ufes.br UCD-SNMP-MIB::dskAvail

Outras mibs que podem ajudar:

UCD-SNMP-MIB::dskTotal.1 = KiBs totais da partição 1
UCD-SNMP-MIB::dskTotal.2 = KiBs totais da partição 2
UCD-SNMP-MIB::dskAvail.1 = KiBs restantes na partição 1
UCD-SNMP-MIB::dskAvail.2 = KiBs restantes na partição 2
UCD-SNMP-MIB::dskUsed.1 = KiBs usados na partição 1
UCD-SNMP-MIB::dskUsed.2 = KiBs usados na partição 2
UCD-SNMP-MIB::dskPercent.1 = percentual usado na partição 1
UCD-SNMP-MIB::dskPercent.2 = percentual usado na partição 2

sexta-feira, 10 de julho de 2009

Script para alterar senha em texto plano de um usuário linux

Algo muito útil para criação de usuários por script é informar seu password. Porém os comandos adduser e passwd só permitem que a senha seja informada pelo usuário, não por um script, o passwd segue a mesma linha.
Não conhecia o comando chpasswd, com ele podemos informar a senha do usuário em texto plano como no script abaixo:

#!/bin/bash

sUsuario="suelen"
sSenha="su3l3n"

echo ${sUsuario}:${sSenha} | chpasswd -m

#Nota: -m utiliza MD5

sexta-feira, 19 de junho de 2009

Como criar um outro disco para maquinas virtuais Xen

Tenho um servidor web linux rodando em um servidor de maquinas virtuais Xen.
O espaço em disco do meu servidor web encheu! Precisei criar outro disco para o servidor web utilizar.
Fiz os passos abaixo:

[Criando arquivo/disco]
- Precisamos criar um novo arquivo para servir como disco rígido:
dd if=/dev/zero of=/xen/SRV-WEB1.disk2 bs=1M seek=10000 count=1
Nota: estou criando um arquivo/disco de 10000MB.

- Formatando arquivo/disco com sistema ext3:
mkfs.ext3 /xen/SRV-WEB1.disk2
Nota: será alertado que o arquivo não é de bloco, apenas confirme que quer continuar.


[Adicionando arquivo/disco à maquina virtual]
- Recuperando configurações da máquina virtual Xen:
virsh dumpxml SRV-WEB1 > /tmp/SRV-WEB1.xml

- Edite as configurações:
vim /tmp/SRV-WEB1.xml

- Adicione o novo arquivo/disco. No exemplo abaixo temos um pedaço do arquivo /tmp/SRV-WEB1.xml com configuração do primeiro e segundo disco.
Preste atenção que também foi informado o device 'xvdb' no segundo disco:
.
.
.
<disk type='file' device='disk'>
<driver name='file'/>
<source file='/xen/SRV-WEB1.disk1'/>
<target dev='xvda' bus='xen'/>
</disk>

<disk type='file' device='disk'>
<driver name='file'/>
<source file='/xen/SRV-WEB1.disk2'/>
<target dev='xvdb' bus='xen'/>
</disk>

.
.
.

- Desligue a maquina virtual:
xm shutdown SRV-WEB1

- Remova as configurações da máquina:
virsh undefine SRV-WEB1

- Adicione as novas configurações inseridas no arquivo /tmp/SRV-WEB1.xml:
virsh define /tmp/SRV-WEB1.xml

- Inicie novamente a máquina:
xm start SRV-WEB1

- Por fim, monte o novo HD em seu sistema:
mount /dev/xvdb1 /novohd
Nota: Se o disco não estiver formatado e particionado não aparecerá xvdb1 somente xvdb.

quinta-feira, 18 de junho de 2009

Como montar um device ISCSI, cliente ISCSI

Um servidor ISCSI permite que você crie um servidor de discos scsi. Deste modo, um servidor A com 500GB pode compartilha-los para que outros servidores utilizem esse espaço como um disco scsi local.
Veja como montar um servidor ISCSI em http://www.1bit.com.br/content.1bit/weblog/iscsi_cluster.
Nesse post ensinarei como montar um disco ISCSI existente em um servidor, isso não foi comentado no artigo do 1bit.

A seguinte instalação foi realizada no unbuntu 9.

- Baixe o pacote que permite a conexão com o servidor:
apt-get install open-iscsi

- Edite o arquivo que indica o modo de autenticação, login e senha do servidor
vim /etc/iscsi/iscsid.conf

informe as seguintes linhas:
.
.
.
node.session.auth.authmethod = CHAP
node.session.auth.username = USUARIO
node.session.auth.password = SENHA

.
.
.

- Reinicie o serviço cliente para que as configurações tenham efeito
/etc/init.d/open-iscsi restart

- Conecte ao servidor ISCSI:
iscsiadm -m discovery -t sendtargets --login -p IP_DO_SERVIDOR_ISCSI

Nota:
Esse comando faz login no servidor ISCSI com as credenciais informadas em /etc/iscsi/iscsid.conf.
Após a execução desse comando será criado um novo device scsi. Ex.: /dev/sdb


[Possíveis Erros]
- "iscsiadm: automatic login after discovery is not fully implemented yet."
Se está utilizando o debian etch, baixe os pacotes do open-iscsi da versão lenny. Pelo que se pode ver, na versão etch não é suportado o login para os servidores.


[Dúvidas]
Ainda não sei como criar vários devices de servidores ISCSI diferentes. Pois o arquivo /etc/iscsi/iscsid.conf não permite informar diferentes logins para diferentes servidores. Se alguém sabe a solução, por favor comente-a aqui.

quinta-feira, 7 de maio de 2009

"Unable to connect to the domain controller because the logon attempt failed" ou "virus W32.Downadup"

Caso você esteja em um domínio de active directory e essa mensagem aparece quando você tenta usar alguma ferramenta de administração do active directory, tente os passos abaixo:
- Reinicie o serviço netlogon.
- Iniciar->executar->services.msc

Esse serviço é necessário para efetuar logon na rede.


[Atenção]

O virus W32.Downadup afeta os compartilhamentos de arquivos.
Como o Active Directory compartilhas as GPOs (diretivas de segurança) via compartilhamento de pasta para seus hosts, essas mensagens irão aparecer se seu PDC ou SDC estiver infectado com esse virus.
A solução é arrumar um bom antivirus e aplicá-lo aos PDC e SDC, verifique as tarefas agendadas, esse virus cria inúmeras schedules tasks para se propagar, limpe-as manualmente e crie uma regra para impedir a criação de tarefas agendadas nos controladores de domínio.

"Unable to obtain Terminal Server User Configuration" ou "the user has not been granted the requested logon type" ou "virus W32.Downadup"

Caso você esteja em um domínio de active directory e tente usar o remote desktop, fazer ftp, ou qualquer outra forma de autenticação utilizando o AD e essas mensagens aparecerem, tente os passos abaixo:

- verifique se o comando ntrights do pacote rktools.exe está instalado em seu PDC.
- estando instalado em seu PDC execute:
ntrights +r SeNetworkLogonRight -u Users
ntrights -r SeDenyNetworkLogonRight -u Users

Esse comando libera o grupo Users a fazer logon na rede, deste modo o remote desktop, ftp e outros serviços serão liberados também.


[Atenção]

O virus W32.Downadup afeta os compartilhamentos de arquivos.
Como o Active Directory compartilhas as GPOs (diretivas de segurança) via compartilhamento de pasta para seus hosts, essas mensagens irão aparecer se seu PDC ou SDC estiver infectado com esse virus.
A solução é arrumar um bom antivirus e aplicá-lo aos PDC e SDC, verifique as tarefas agendadas, esse virus cria inúmeras schedules tasks para se propagar, limpe-as manualmente e crie uma regra para impedir a criação de tarefas agendadas nos controladores de domínio.