<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>organelas &#187; utilidades</title>
	<atom:link href="http://organelas.com/tag/utilidades/feed/" rel="self" type="application/rss+xml" />
	<link>http://organelas.com</link>
	<description></description>
	<lastBuildDate>Mon, 14 Nov 2011 00:05:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Shell script para backup: nova versão</title>
		<link>http://organelas.com/2010/01/24/shell-script-para-backup-nova-versao/</link>
		<comments>http://organelas.com/2010/01/24/shell-script-para-backup-nova-versao/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 02:08:08 +0000</pubDate>
		<dc:creator>nelas</dc:creator>
				<category><![CDATA[código]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[rsync]]></category>
		<category><![CDATA[shell script]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[utilidades]]></category>

		<guid isPermaLink="false">http://organelas.com/?p=479</guid>
		<description><![CDATA[Outro dia atualizei o que faltava no meu shell script para fazer backup usando o rsync. Adicionei o wakeonlan para ligar a máquina remotamente (necessário descobrir o HW address da sua máquina de destino e se certificar de que é possível ligá-la remotamente &#8212; possível que tenha que ativar essa opção na BIOS), dei uma [...]]]></description>
			<content:encoded><![CDATA[<ul class="lang_switch"></ul>
<p>Outro dia atualizei o que faltava no meu <a title="Shell rsync" href="http://organelas.com/2009/08/07/shell-script-para-backup-usando-rsync-e-ssh-em-dhcp-no-ubuntu/">shell script para fazer backup usando o rsync</a>.</p>
<p>Adicionei o <a href="http://en.wikipedia.org/wiki/Wake-on-LAN">wakeonlan</a> para ligar a máquina remotamente (necessário descobrir o HW address da sua máquina de destino e se certificar de que é possível ligá-la remotamente &#8212; possível que tenha que ativar essa opção na BIOS), dei uma arrumadinha, incluí a opção de excluir arquivos e pastas do backup (ver abaixo) e adicionei num <a href="http://en.wikipedia.org/wiki/Cron">cron job</a> para fazer um backup diário. Além disso, o script desliga a máquina depois do fim do backup. Aqui está:</p>
<pre class="brush:bash">
#!/bin/bash

# Script para backup via SSH usando o rsync
# Versão 0.8 - 2009/09/05

# # # # # # Configuração # # # # # #

# Mude os parâmetros abaixo, referentes ao seu sistema

# Arquivo log
LOG=/home/user0/.backup`date +%Y-%m-%d`.log

# IP ou hostname da máquina de destino
DESTINO=destino.local

# Usuário no destino
USR=user1

# Diretório de destino
DIR=/home/user1/Backup/

# Diretório de origem
SRC=/home/user0

# Arquivo com lista de arquivos e diretórios
# que não serão incluídos no backup
EXCLUIR=/home/user0/.rsync/exclude

# HW address
HW=00:ee:dd:cc:bb:aa

# # # # # # Configuração # # # # # #

# # # # # # #  Funções # # # # # # #

function ligada
{
# Checar se a máquina de destino está ligada
echo -e "Checando se $DESTINO está ligada..."
/bin/ping -c 1 -W 2 $DESTINO &gt; /dev/null
if [ "$?" -ne 0 ]; then
return 1
else
return 0
fi
}

function run_backup
{
HORA_INI=`date +%s`
echo -e `date +%c` &gt;&gt; $LOG
echo -e "\n$DESTINO ligado!" &gt;&gt; $LOG
echo -e "Iniciando o backup...\n" &gt;&gt; $LOG
rsync -ah --delete --stats --progress --log-file=$LOG --exclude-from=$EXCLUIR -e ssh $SRC $USR@$DESTINO:$DIR
HORA_FIM=`date +%s`
TEMPO=`expr $HORA_FIM - $HORA_INI`
echo -e "\nBackup finalizado com sucesso!" &gt;&gt; $LOG
echo -e "Duração: $TEMPO s\n" &gt;&gt; $LOG
echo -e "--- // ---\n" &gt;&gt; $LOG
echo -e "\nBackup finalizado com sucesso!"
echo -e "Duração: $TEMPO s\n"
echo -e "Consulte o log da operação em $LOG.\n"
}

# # # # # # # Funções  # # # # # # #

# # # # # # # Programa # # # # # # #

# Checar se a máquina de destino está ligada
ligada
if [ "$?" -eq "1" ]; then
echo -e "\n$DESTINO desligado. Tentando acordá-lo..."
wakeonlan $HW
echo -e "\nPacote mágico enviado. Aguarde."
sleep 70
ligada
if [ "$?" = "1" ]; then
echo -e `date +%c` &gt;&gt; $LOG
echo -e "\n$DESTINO desligado." &gt;&gt; $LOG
echo -e "Backup não realizado\n" &gt;&gt; $LOG
echo -e "--- // ---\n" &gt;&gt; $LOG
echo -e "\n$DESTINO desligado."
echo -e "Backup não realizado.\n"
else
echo -e "\n$DESTINO ligado! Começando o backup..."
run_backup
fi
else
echo -e "\n$DESTINO ligado! Começando o backup..."
run_backup
fi

echo -e "Desligando o $DESTINO..."
ssh $USR@$DESTINO 'sudo halt'
echo -e "Pronto. Tchau!"

# # # # # # # Programa # # # # # # #

# # # # # # # Afazeres # # # # # # #
#
#	- Criar alça para quando a transferência falhar (e.g.,falta de espaço)
</pre>
<p>Meu arquivo <em><strong>exclude</strong></em>, com a lista de arquivos e pastas que não serão incluídas no backup ficou assim:<br />
<code><br />
.thumbnails/<br />
Picasa.ini<br />
Thumbs.db<br />
.local/share/Trash/<br />
.cache/<br />
.gvfs/<br />
</code></p>]]></content:encoded>
			<wfw:commentRss>http://organelas.com/2010/01/24/shell-script-para-backup-nova-versao/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>

