Dia Anterior

Publicado por Perfil removido 08/01/2008

[ Hits: 8.754 ]

Download diaanterior.sh




Script criado para compactar arquivos que foram gravados em um diretório com a data corrente, porém é para compactar o conteudo do diretório do dia anterior.

Falta colocar o acesso ao diretório para compactar.

  



Esconder código-fonte

#!/bin/bash
#:: __________________________________________________________
#::
#::  Bash Script:     diaanterior.sh
#::  Autor:           William Alves Santos
#::
#::  Updates:
#::  Enhancement Req.
#::  And Bug Reports: williamalvessantos@gmail.com
#::
#::  Built/Tested On: Linux kernel 2.6.18-4-686
#::  Requirements:    OS: Any common Linux
#::
#::  Purpose:         Dia Anterior
#::
#::  Assumptions And
#::  Limitations:     * Assumes read-write access
#::
#::  Last Update:     2007-11-22
#:: __________________________________________________________
#
#     Dia Anterior - Rotina criada para compactar arquivos em uma pasta do dia anterior
# ===============================================
#

ANO=$(date +%Y)                 # DECLARA ANO ATUAL             ->      YYYY    =       2007
        MES=$(date +%m)         # DECLARA MES ATUAL             ->      MM      =       12
                MESDIV=$( expr $MES / 1 )
        DIA=$(date +%d)         # DECLARA DIA ATUAL             ->      DD      =       31
                DIADIV=$( expr $DIA / 1 )
ANOANT=$((--ANO))               # DECREMENTA -1 ANO             ->      YYYY    =       2006
        MESANT=$((--MESDIV))       # DECREMENTA -1 MES          ->      YY      =       11
                MESANTDIV=$( expr $MESANT / 1 )
        DIAANT=$((--DIADIV))       # DECREMENTA -1 DIA          ->      DD      =       30
                DIAANTDIV=$( expr $DIAANT / 1 )
# echo HOJE $ANO-$MES-$DIA
ANO=$(date +%Y)                 # DECLARA ANO ATUAL             ->      YYYY    =       2007
        MES=$(date +%m)         # DECLARA MES ATUAL             ->      MM      =       12
                MESDIV=$( expr $MES / 1 )
        DIA=$(date +%d)         # DECLARA DIA ATUAL             ->      DD      =       31
                DIADIV=$( expr $DIA / 1 )

ANOMLTPL400=`expr $ANO % 400`
        ANOMLTPL100=`expr $ANO % 100`
                ANOMLTPL4=`expr $ANO % 4`

case $MES in                    # Informa termino do MES - ANTERIOR
        01) DIAFINALMESANT=31 ;;
        02) DIAFINALMESANT=31 ;;
        03) if [[ $ANOMLTPL4 == 0 ]] && [[ $ANOMLTPL100 != 0 ]] || [[ $ANOMLTPL400 == 0 ]] ;
                then DIAFINALMESANT=29 ;
                        else DIAFINALMESANT=28 ; fi ;;
        04) DIAFINALMESANT=31 ;;
        05) DIAFINALMESANT=30 ;;
        06) DIAFINALMESANT=31 ;;
        07) DIAFINALMESANT=30 ;;
        08) DIAFINALMESANT=31 ;;
        09) DIAFINALMESANT=31 ;;
        10) DIAFINALMESANT=30 ;;
        11) DIAFINALMESANT=31 ;;
        12) DIAFINALMESANT=30 ;;
esac

case $MES in                    # Informa termino do ANO - ANTERIOR
        01) MESANT=12   ;;
esac

# Resolve virada do ANO
if [[ $DIADIV == 1 ]] && [[ $MESDIV == 1 ]] ; then echo $ANOANT; else ANOANT=$ANO ; fi > /dev/null
        # Resolve virada do MES
        if [[ $DIADIV == 1 ]] ; then echo $MESANTDIV ; else MESANTDIV=$MESDIV ; fi > /dev/null
                # Resolve virada do DIA primeiro
                if [[ $DIADIV == 1 ]] ; then DIAANTDIV=$DIAFINALMESANT ; fi > /dev/null
VARZERO=0
# Resolve DIA menor que 10
        if [ $DIAANTDIV -lt 10 ] ; then echo $VARZERO$DIAANTDIV ; else echo $DIAANTDIV ; fi > antdia
                ANTDIA=$(cat antdia)
# Resolve MES menor que 10
        if [ $MESANTDIV -lt 10 ] ; then echo $VARZERO$MESANTDIV ; else echo $MESANTDIV ; fi > antmes
                ANTMES=$(cat antmes)
# Declara ANO para a varivel padrao ANT___
                ANTANO=$ANOANT

        if [ $ANTMES == '00' ] ; then ANTMES=12 ; else echo $ANTMES ; fi > /dev/null

echo HOJE $ANO-$MES-$DIA
echo ONTEN $ANTANO-$ANTMES-$ANTDIA


Scripts recomendados

Script para pegar ip WAN para firewall com uma ou mais links de internet

Cálculo de área de cobertura de toner/tinta em uma impressão

Mini IDS

Limpeza de logs sem dor de cabeça

Troca de MAC


  

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