script [RESOLVIDO]

1. script [RESOLVIDO]

Diego Felipe Bento Lopes de Oliveira
dfelipenm

(usa CentOS)

Enviado em 24/03/2011 - 12:27h

Boa tarde pessoal, estou usando um script aqui na empresa pra backup no hd externo, no formato tar.gz.
Algum filho de uma boa mãe apagou tudo que tinha no hd externo porque eu não me atentei as permissões de gravação, e então recuperei a hierarquia do script tudo denovo. Mas agora quando o script roda, o total dos arquivos backupeados eh somente de 1 kb, quando vc abre o log do backup ele da a seguinte mensagem: Cannot stat ...
Mas o caminho já está certo no arquivo que indica onde os arquivos serão salvos, mas mesmo assim não consigo fazer esse backup.
Se precisarem de mais informações pra me ajudar, por favor perguntem!


  


2. Re: script [RESOLVIDO]

Mauricio Souza Klein
Hebang

(usa Arch Linux)

Enviado em 24/03/2011 - 12:38h

Bom, eu não entendi muito bem.

O que seria "recuperar a hierarquia do script"?

Se esse fdp apagou todo o HD externo, quando você rodar o script novamente, em teoria toda a estrutura do disco seria copiada para o HD externo, certo?

Por favor poste mais detalhes para tentarmos te ajudar.

Abraço e boa sorte!


3. Re: script [RESOLVIDO]

Diego Felipe Bento Lopes de Oliveira
dfelipenm

(usa CentOS)

Enviado em 24/03/2011 - 13:14h

É o seguinte, vou detalhar a parte técnica:
Plataforma: Linux centos

script:

#!/bin/sh
#
# Identificação dos arquivos
IDENTIFICA=Backup_usuarios

# Numero de dias do ciclo de backup
DIAS=7

# E-mail do administrador
ADMIN=filoauto@bkp

# A partir de onde ficarão os arquivos
PREFIX=/mnt/hd_externo/backup/usuarios

# Onde os arquivos de backup e logs ficarão armazenados
DIR_DESTINO=/mnt/hd_externo/backup/usuarios

# Lista de arquivos a não serem backupeados
EXCLUDE=$PREFIX/etc/exclude.list

# Arquivos temporário do script
TEMP=/tmp/.backup.$$

# Arquivos de controle do GNU/Tar
INC=$PREFIX/etc/incremental.conf

# Formato da data
DATA=$(date +%d-%m-%Y-%a)

# Arquivo com a lista de diretórios a serem backupeados
LISTA=$(cat $PREFIX/etc/list.conf | grep ^\/ | sort | uniq)

# Arquivos gerado pelo script para controle de incremento
CONFIG=$PREFIX/etc/backup.conf

VOLTA=0
if [ ! -e $CONFIG ] ; then
touch $CONFIG
NUMERO=1
else
cp -f $CONFIG $CONFIG.bak
LINHAS=$(cat $CONFIG | grep ^[0-9] | wc -l)
[ $LINHAS -eq $((DIAS+1)) ] && VOLTA=1
FIRST=$(cat $CONFIG | grep ^[0-9]- | head -1)
LAST=$(cat $CONFIG | grep ^[0-9]- | tail -1)
OLD=$(echo $LAST | cut -f1 -d"-")
OLD=${OLD:-0}
BACKUP_OLD=$(echo $FIRST | cut -f1 -d"-")
FILE_OLD=$(echo $FIRST)
if [ $OLD -eq $DIAS ] ; then
NUMERO=1
mv -f $INC $INC.bak
else
NUMERO=$((OLD+1))
fi
fi

DESTINO=$DIR_DESTINO/$IDENTIFICA-$NUMERO-$DATA

SEND_MAIL () {
sendmail $ADMIN << FIMEMAIL
Subject: Backup CL $(date +%d-%m-%Y)

Backup realizado no arquivo: $DESTINO.tar.gz

FIMEMAIL
}

df -h > $DESTINO.log
tar --totals --ignore-failed-read --exclude-from=$EXCLUDE -zcvg $INC -f $DESTINO.tar.gz $LISTA >> $DESTINO.log 2>&1
df -h >> $DESTINO.log
SEND_MAIL $DESTINO.log
echo $NUMERO-$DATA >> $CONFIG
if [ $VOLTA -eq 1 ] ; then
rm -f $DIR_DESTINO/$IDENTIFICA-$FILE_OLD.tar.gz
rm -f $DIR_DESTINO/$IDENTIFICA-$FILE_OLD.log
sed 1d $CONFIG > $TEMP
mv -f $TEMP $CONFIG
fi






A hierarquia que eu citei é referente aos diretórios que precisam estar dentro do hd externo pra receber os backups.

/mnt/hd_externo/backup/total/etc


dentro desse diretorio etc tem que estar 6 arquivos: backup.conf, backup.bak, exclude.list, incremental.conf, incremental.conf.bak e list.conf


cada um pra uma função especifica, mas o principal eh o LIST.CONF, onde tem o diretorio que o script vai ter que ir buscar os arquivos pra copiar.

Se precisarem de mais alguma informação, por favor avisem!


4. Re: script [RESOLVIDO]

Mauricio Souza Klein
Hebang

(usa Arch Linux)

Enviado em 24/03/2011 - 14:11h

Ola!

Geralmente esse erro de stat ocorre por falta de permissão no destino dos arquivos (no caso seu HD externo).

Tente verificar o seguinte:
1) Verifique se o HD externo não foi montado como read only (somente leitura). Caso sim, remonte ele com permissões de escrita.

2) Verifique as permissões da hierarquia que você criou. Tente dar permissao de leitura e escrita recursivamente (chmod -R +rw "/mnt/hd/hierarquia" por exemplo). Após feito o backup, modifique as permissões conforme a necessidade para evitar que outra pessoa apague os dados novamente.

Espero ter ajudado.


5. Re: script [RESOLVIDO]

Diego Felipe Bento Lopes de Oliveira
dfelipenm

(usa CentOS)

Enviado em 24/03/2011 - 14:14h

DEU CERTO! VALEU! ERA UM PROBLEMA COM O ARQUIVO BACKUP.CONF QUE ESTAVA VAZIO!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts