backupsl.sh

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

[ Hits: 5.284 ]

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

Script para preparar o pc para receber e gerenciar celular MOTOROLA (refeito o script)

Criar servidor samba shell script

Fatorial

Gerar backup do MySQL ou Postgres

Monitor_espaco.sh


  

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