Ainda não entendi como criar um log??!?!

Iniciado por Willdoidao, 31 de Março de 2010, 09:21

tópico anterior - próximo tópico

Willdoidao

Tenho o seguinte scritp:

#!/bin/bash
#Autor: William Lima
#Programa de criação de backup full
#DATA: 19 de Março de 2010

DATA=`date +%d-%m-%Y`
cd /home/arvorebackup/Compartilha
echo "dentro da pasta"
echo "Compactando"
tar -cfv Douglas.tar Douglas
sleep 15
tar -cfv Thais.tar   Thais
sleep 15
tar -cfv Andre.tar   Andre
sleep 15
tar -cfv Rodrigo.tar Rodrigo
sleep 15
tar -cfv Cesar.tar   Cesar
sleep 15
tar -cfv Will.tar    Will
sleep 15
tar -cfv Marcos.tar  Marcos
sleep 15
tar -cfv Sheyla.tar  Sheyla
sleep 15
tar -cfv Elaine.tar  Elaine
sleep 15
tar -cfv Andreia.tar Andreia
sleep 15
bzip2 Douglas.tar
sleep 15
bzip2 Thais.tar
sleep 15
bzip2 Andre.tar
sleep 15
bzip2 Rodrigo.tar
sleep 15
bzip2 Cesar.tar
sleep 15
bzip2 Will.tar
sleep 15
bzip2 Marcos.tar
sleep 15
bzip2 Sheyla.tar
sleep 15
bzip2 Elaine.tar
sleep 15
bzip2 Andreia.tar
sleep 15
echo "Apagando"
rm -rfv /home/arvorebackup/Compartilha/Douglas
sleep 10
rm -rfv /home/arvorebackup/Compartilha/Thais
sleep 10
rm -rfv /home/arvorebackup/Compartilha/Andre
sleep 10
rm -rfv /home/arvorebackup/Compartilha/Rodrigo
sleep 10
rm -rfv /home/arvorebackup/Compartilha/Cesar
sleep 10
rm -rfv /home/arvorebackup/Compartilha/Will
sleep 10
rm -rfv /home/arvorebackup/Compartilha/Marcos
sleep 10
rm -rfv /home/arvorebackup/Compartilha/Sheyla
sleep 10
rm -rfv /home/arvorebackup/Compartilha/Elaine
sleep 10
rm -rfv /home/arvorebackup/Compartilha/Andreia
sleep 10

#Criando pasta para armazenamento
mkdir  -v $DATA
mv   /home/arvorebackup/Compartilha/Douglas.tar.bz2 /home/arvorebackup/Compartilha/$DATA
sleep 10
mv   /home/arvorebackup/Compartilha/Thais.tar.bz2   /home/arvorebackup/Compartilha/$DATA
sleep 10
mv   /home/arvorebackup/Compartilha/Andre.tar.bz2   /home/arvorebackup/Compartilha/$DATA
sleep 10
mv   /home/arvorebackup/Compartilha/Rodrigo.tar.bz2 /home/arvorebackup/Compartilha/$DATA
sleep 10
mv   /home/arvorebackup/Compartilha/Cesar.tar.bz2   /home/arvorebackup/Compartilha/$DATA
sleep 10
mv   /home/arvorebackup/Compartilha/Will.tar.bz2    /home/arvorebackup/Compartilha/$DATA
sleep 10
mv   /home/arvorebackup/Compartilha/Marcos.tar.bz2  /home/arvorebackup/Compartilha/$DATA
sleep 10
mv   /home/arvorebackup/Compartilha/Sheyla.tar.bz2  /home/arvorebackup/Compartilha/$DATA
sleep 10
mv   /home/arvorebackup/Compartilha/Elaine.tar.bz2  /home/arvorebackup/Compartilha/$DATA
sleep 10
mv   /home/arvorebackup/Compartilha/Andreia.tar.bz2 /home/arvorebackup/Compartilha/$DATA
sleep 10
#cd /home/arvorebackup/Compartilha
tar -pcf $DATA.tar $DATA
bzip2 $DATA.tar
sleep 10
mv  /home/arvorebackup/Compartilha/$DATA.tar.bz2 /home/arvorebackup/Backups
sleep 10
rm -rfv /home/arvorebackup/Compartilha/$DATA
echo "Fim"


Quero criar um log sei que colocando o -v ele lista a ação mas como fazer isso?  Como fazer para ele criar o log de tudo e não só do echo ??
To seguindo essa explicação mas ainda não consegui entender como usar:

http://www.zago.eti.br/script/log-de-comandos.html
"Penso 99 vezes e nada descubro. Deixo de pensar, mergulho no silêncio, e a verdade me é revelada." (Albert Einstein)
Abraços Will

fabio2paolini

#1
Olá, este link que você indicou parece ter uma série de exemplos, com os quais você já pode criar diversos "logs"
Primeiro você precisa decidir onde quer guardar as mensagens.

Se quiser guardar tudo em um único arquivo na própria pasta onde o script é exeutado, ou seja, em /home/arvorebackup/Compartilha, basta por no fim de  
todas as linhas onde pode haver notificações algo como ">> arquivo.log  2>>error.log". Desse modo os erros vão ao error.log e as notificações sem erro ao arquivo.log.

Por outro lado você pode usar o exec. Neste caso faça o seguinte

Escreva isto do script
exec 4>&1      # Abre o descriptor 3 deixando-o como saída padrão
exec 5>&2      # Abre o descriptor 4 deixando-o como saída de erro          

exec 1>> arquivo.log  #direciona a saída padrão para arquivo.log
exec 2>> error.log      #direciona a saída de erro  para arquivo.log

# O corpo do  seu script ...

exec 1>&4  4>&-                 #Restaura a saída padrão para o terminal e fecha o descriptor 4
exec 2 >&5 5>&-                 #Restaura a saída de erro para o terminale fecha o descriptor 5



É isso, espero ter ajudado.