Script de Backup (dump) SVN – Subversion

Continuando a série de scripts de backup, hoje iremos ver como realizar o backup de versionamentos SVN (subversion).

Podemos começar este poste com as palavras de um sábio:

“Existem dois tipos de pessoas, aquelas que fazem backup regularmente e aquelas que nunca tiveram uma falha do disco rígido”

Existem uma série de cenários e estratégias de backup. A maioria delas sugerem uma cópia de segurança, uma vez por dia, geralmente nas primeiras horas. Este, porém, pode não funcionar bem com um ambiente com mudanças rápidas onde os dados muda várias vezes por hora. Este tipo de ambiente é geralmente em desenvolvimento de software, visto que o código pode se modificar completamente várias vezes em questão de horas, e muitas vezes um único backup diário pode não funcionar.

#!/bin/sh
################################################
#
# Backup Completo dos repositorios SVN
#
# @author Jonas Ferreira
# @email jonas [at] jf [dot] eti [dot] br
# @version v0.01
# @reldate 2012-04-09
################################################

# data
# ——————–
bakdate=$(date +%Y%m%d%H%M)
echo “——————————–”
echo “Rodando o script de Backup – SVN – $bakdate”
echo “——————————–\n”

# Local onde estao os repositorios
# —————————
svnrepos=”/srv/svnrepos”

# Local onde sera gerado o DUMP
# ————————
bakdest=”/home/username/SVN-BACKUPS”

# Local onde os dumps serao tranferidos, apos o DUMP
# —————————————-
baktousb=”/media/USB/Extra-BACKUP”

# Entrando na pasta dos repositorios
cd $svnrepos

# Certificando se tem acesso de escrita na pasta de destino
if [ -d “$bakdest” ] && [ -w “$bakdest” ] ; then

for repo in *; do
# gerando um dump para cada projeto
echo “Executando: svnadmin dump $repo > $bakdest/$repo-$bakdate.svn.dump \n”
# Finalizando o backup
svnadmin dump $repo > $bakdest/$repo-$bakdate.svn.dump

# copiando os arquivos para a unidade remota
if [ -d “$baktousb” ] && [ -w “$baktousb” ] ; then
echo “Copiando para $baktousb …\n”
cp $bakdest/$repo-$bakdate.svn.dump $baktousb
fi
done
else
echo “Nao eh possivel continuar o processo de backup”
echo “$bakdest *NAO* eh um diretorio gravavel.”
fi

# Finalizando o script de backup
echo “\n\n=================================”
echo ” – Backup Completo :-]”

Anexo aqui o script personalizado por mim, onde faz-se o backup Full e transfere-se para um servidor na rede por meio de cifs. (Servidor SVN rodando no CentOS 6.2).
Download do Script

Para restaurar o dump, é só executar:
$ svnadmin load /var/www/svn/repos < repos-backup Fontes: - Instalação do SVN no CentOS
http://www.niden.net/
(exemplos de backup incremental)
http://www.hossainkhan.info/content/shell-script-backup-all-your-svn-repositories

Scripts – Active Directory

Listar usuários do Active Directory

dsquery user -limit 1000 | dsget user -dn > C:\usuarios.txt

Lista de usuários do Active Directory, adicionando uma coluna informando se a conta esta habilitada ou não.

dsquery user -limit 0 | dsget user -dn -disabled > C:\usuarios2.txt

Fonte: http://www.msxfaq.de/tools/dsxxx.htm

Mostrar todos os usuários no Active Directory com “a senha nunca expira”:

get-aduser -filter * -properties Name, PasswordNeverExpires | where { $_.passwordNeverExpires -eq "true" } | where {$_.enabled -eq "true"} | Format-Table -Property Name, PasswordNeverExpires -AutoSize

Mostrar o último horário de login, em formato de classificação para objetos de computador:

Get-ADComputer -Filter * -Properties *  | Sort LastLogonDate | FT Name, LastLogonDate -Autosize

Mostrar a hora do último login, no formato classificado para userobjects:

Get-ADUser -Filter * -Properties *  | Sort LastLogonDate | FT Name, LastLogonDate -Autosize

Script de Backup (dump) Postgresql – Com bancos a escolher

Depois que publiquei o artigo Script de Backup (dump) Postgresql – Múltiplos bancos em arquivos separados, onde por meio de um script shell, é gerados dumps de todos os bancos existentes no servidor, cada banco um arquivo separado e compactado, me perguntaram se era possível, com a mesma idéia fazer um script que ao invés de realizar o dump de todas as bases, fosse possível definir quais bancos seriam backupiados.

Pois bem, é bem simples de fazer isso, vejamos:

[shell]
#!/bin/bash
#
# Um simples script de backup
# Autor: Jonas Ferreira

# db_array – lista dos bancos que se deseja fazer o dump
db_array=”banco1 banco2 banco3 banco4″

# logfile – arquivo que grava o log de cada execucao do script
logfile=”/tmp/pgsql-backup.log”

#Diretorio de destino do arquivos
DIR=/tmp/backup

for db in $db_array
do
/usr/bin/pg_dump $db > “$DIR/$db.sql” 1>> $logfile 2>> $logfile
tar zcvf “$DIR/$db.tgz” “$DIR/$db.sql”
rm -rf “$DIR/$db.sql”
done
[/shell]

Simples assim!

Resolvendo problemas da placa eth0 ao clonar máquinas virtuais CentOS no VMware ESX

Após a clonagem de uma máquina virtual pelo VMWare a placa de rede do eth0 do Linux CentOS é renomeada como eth1, e não pega IP. isto é devido ao duplicamento de endereço MAC. Para corrigir este problema deve se efetuar a seguinte os seguintes comandos:

[shell]
# cd /etc/udev/rules.d
# cp 70-persistent-net.rules /root/
# rm 70-persistent-net.rules
# reboot
[/shell]

Este arquivo é gerado automaticamente pelo /lib/udev/write_net_rules program, e pode ser removido sem problemas. Para verificar se o problema foi corrigido, execute:

[shell]# /sbin/ifconfig | grep “^eth”[/shell]

Terá como resposta, algo assim:

[shell]eth1 Link encap:Ethernet HWaddr 00:0C:29:F3:E4:1E[/shell]

Você precisa trocar o endereço MAC da placa atual em /etc/sysconfig/networking-scripts/ifcfg-eth0, colocando o MAC exibido na acima, na linha HWADDR:

[shell]
# cat /etc/sysconfig/network-scripts/ifcfg-eth0
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
[/shell]

Salve tudo e reinicie os serviços de rede

[shell]
# service network restart
# reboot
[/shell]

Para verificar se realmente funcionou, execute os seguintes comandos:

[shell]
# /sbin/ifconfig -a
# route -n
[/shell]

Verá que agora a referência é a eth0.

Referências:

Como zerar todas as regras de IPTables

Howto: Script Shel para eliminar as regras do Firewall Iptable local.

É algo útil para economizar tempo, sem a necessidade de ter que digitar cada linha na console, toda vezes que se deseja limpar as regras.

Sistema Operacional: Debian e derivados.

Dentro do diretório /scripts cremos um arquivo chamado limpa_iptables.sh com o seguinte conteúdo:

[shell]

#!/bin/sh
echo “Limpando todas as regras e liberando todo o tráfego…”
/sbin/iptables -P INPUT ACCEPT
/sbin/iptables -P FORWARD ACCEPT
/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -F
/sbin/iptables -X
/sbin/iptables -t nat -F
/sbin/iptables -t nat -X
/sbin/iptables -t mangle -F
/sbin/iptables -t mangle -X
/sbin/iptables -L -n
[/shell]

Agora é só tornar o script executável e pronto, já poderemos rapidamente dar um flush nas regras de iptable, com apenas um comando:

[shell]
root@srv:~# chmod +x /scripts/limpa_iptables.sh
root@srv:~# ./scripts/limpa_iptables.sh

Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination
[/shell]

Howto: Como utilizar mais de 4GB de memoria RAM em um sistema de 32bits?

Howto: Como utilizar mais de 4GB de memoria RAM em um Sistema Operacional de 32bits?
================================================================

Este é um problema bastante comum, veja só a situação:

Você configurou seu servidor, tudo perfeito e o mesmo esta funcionando 100%, depois de um tempo percebe que irá precisar colocar mais memória, seja por qual for o motivo (instalou o Tomcat, Jboos… e afins… ), e ao adicionar novos pentes de RAM nota que o Sistema Operacional não reconhece as novas memórias, ou seja, você esta utilizando um S.O de 32bits.

O que fazer? Bem, passei por isso esses dias, e o administração da rede simplesmente disse: “faz outra máquina com S.O de 64 bits”.

Não vou dizer que ele esteja errado, porque pode ser a oportunidade de renovar o S.O e tudo mais, porém é chato ter que configurar tudo novamente, serviços, crons… e etc. Felizmente há uma solução.

Basta instalar o Kernel com suporte para PAE (Physical Address Extension):

Para Linux Debian Squeeze ou Wheeze:

Versões estáveis e testadas:
# aptitude install linux-image-2.6-686-bigmem

Para Debian Sid:
# aptitude install linux-image-686-pae

Para CentOS e RedHat derivados:

# yum install kernel-PAE

Após isso é só dar um Reboot e as novas memórias serão reconhecidas.

Há, também é possível fazer isso em Windows 7, basta instalar este Pach:

Windows 7 32bit 4GB Ram Patch (2.3 MiB)
Instruções: http://www.howorks.com/

TurnKey Linux – Repositório de Máquinas Virtuais para Servidores

TurnKey Linux é um repositório de máquinas virtuais opensource destinadas a servidores.  O núcleo do Linux Turnkey é Ubuntu 10.04.1 e sobre ele é instalado os aplicativos e componentes mínimos para que possa executar determinado produto. Isso resulta em um servidor leve e enxuto, aumentando a eficiência e reduzindo os riscos de segurança.

As máquinas virtuais disponíveis para download estão em formato .ISO, com isso pode-se facilmente serem implantadas utilizando VMWare, Virtual Box, Parallels, Xen e em cloud. Todas as máquinas possuem administração baseada em ambiente web de fácil entendimento.

As máquinas virtuais disponíveis para download estão divididas em grupos como:

Não deixe de conhecer também o TurnKey Hub, que é o serviço oferecido por levantar qualquer uma dessas máquinas diretamente no servidor Cloud deles na Amazon, pagando uma ninharia, e tendo acesso total a máquina. Ideal para aplicações que necessite de alta escalabilidade e disponibilidade.

Valeu Frankley Francalino!

Sushi, huh? Como atualizar seu Linux sem estar conectado a rede

Sushi, huh? é um programa muito legal, que permite baixar atualizações de várias distribuições Linux em um computador, armazenar essas atualizações em um dispositivo de armazenamento e executar em outro computador sem conexão a Internet.

A aplicação é executada através de uma interface Web, e permite escolher a distribuição, repositório e os pacotes que se deseja baixar.

Sushi, huh? funciona tanto em Windows como em Linux, todavia encontra-se em fase beta, porém já é possível atualizar distribuições como Debian, Fedora, Ubuntu, Mandriva y openSuse.

Link: Sushi, huh?

Via: infoblogs