backupsl.sh

Publicado por Fábio Berbert de Paula 13/11/2002

[ Hits: 5.300 ]

Homepage: https://www.instagram.com/alexabolada/

Download backupsl.zip




Script usado para realizar backup dos principais arquivos de log, jogando os dados para outro diretório e zerando o conteúdo dos originais. Funciona como o log_rotate.

  



Esconder código-fonte

#!/bin/bash
# Fri Aug 16 2002
#
# backupSlack.sh
#
# Arquivos de log em certos sistemas com razoavel movimento 
# costumam crescer e comer espaco como ratos comem queijo. Realizando
# backups desses arquivos pode-se evitar problemas de espaco em disco
# que com o tempo podem ocorrer.
# O script funciona da seguinte forma: 
# Fazendo backups dos seguintes arquivos de log /var/log/: messages, cron,
# debug, sulog, syslog. 
# Ao fazer esses backups ele zera os 
# os arquivos e joga os backups para o diretorio criado na variavel $DST, 
# compactando-os.
# Execute o script de tempos em tempos, voce pode adicionar entradas no
# crontab para isso. 
# Voce deve ser root para executar esse programa.
# Verifique as permissoes do script, caso nao tenha permissao
# de execucao execute: chmod 755 backuplog.sh
# O programa foi testado em um Slackware 8.0 kernel 2.2.19
#
# Coded by Carlos Carvalho - hash
# Duvidas e sugestoes: h4sh@uol.com.br
# www.vivaolinux.com.br
#
# Gr33tz: Abeel k1ll3r F-117 anubssys Dark[x] 
#         RodZ Fuchs ( two micro$oft guys, they breath NT,
#         would you believe that?!) and few others...
#

if [ ! -d /var/log ]; then
  echo "/var/log NAO existe"
  echo "QUITTING"
  exit 1
fi

backup_function ()
{
#Destino dos backups, se preferir outra localizacao
#altere a linha seguinte:

DST=/root/log_backups

if [ ! -d $DST ]; then
    mkdir $DST
else
    rm -rf $DST/*
fi

#ROTINA PARA /var/log/* :

#Acrescente mais arquivos(*) em "for arquivo in * ; do" de necessario.

for arquivo in messages cron debug sulog syslog XFree86.0.log ; do

A=
Z=

if [ -e /var/log/$arquivo ]; then
      cat /var/log/$arquivo >> $DST/$arquivo.backup
      gzip $DST/$arquivo.backup
      echo > /var/log/$arquivo
      VAR=/var/log/$arquivo*
      MESSAGES=$(ls $VAR |wc -l)
   A=1
   Z=$MESSAGES
      while [ "$A" -lt "$Z" ]
      do
       cat /var/log/$arquivo.$A >> $DST/$arquivo.backup.$A
       gzip $DST/$arquivo.backup.$A
       echo > /var/log/$arquivo.$A
       A=`expr $A + 1`
      done
  echo "Backup de /var/log/$arquivo* completo"
else
      echo "/var/log/$arquivo NAO existe!"
fi
done
sleep 1
echo
echo "Salvos em: $DST"
echo
exit 0
}

info_function ()
{
echo "usage: ./backupSlack.sh [-iniciar] [-ver] [-uninstall]"
exit 0
}

#Entrada de argumentos

case $1 
in
   -iniciar)
      backup_function
           ;;
           -ver)
                ls /root/log_backups/
      echo -n "Qual log deseja visualizar? " 
      read FLOG
      less /root/log_backups/$FLOG
      exit 0
           ;;
     -uninstall)
      echo -n "O script e os backups serao deletados. Tem certeza? [s/n]: "
      read FERRARI
      if [ "$FERRARI" = "s" ]; then
      echo "Removidos!"
      rm -rf /root/log_backups
      rm -rf $0
                else
                echo "Script e diretorio intactos."
      exit 0
      fi
      ;;
         *)
                info_function
      ;;
esac
#EOF  

Scripts recomendados

Testador de MD5

Reiniciar modem via Shell Script

Autenticação Speedy Business

Script para gravar CD

fwgen - gerador de regras de firewall iptables


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts