+ Responder ao Tópico



  1. #1
    giuliano
    Visitante

    Padrão Shell script

    Olá,
    Tenho um script de backup que roda backup full e incremental...
    Gostaria de saber se é possivel adicionar uma linha nele na qual ele remova os todos os backup antigos de 1 mês atras ???
    Segue o script abaixo

    Código :
    #!/bin/bash
    #Cria os arquivos de backup
    #
    data_ini=`date +%d/%m/%Y-%H:%M`
    #Dados do backup:
    DATA="/home /public"
    CONFIG="/etc /root"
    #Lista de backup's incrementais:
    LIST="/backup/backup_inc_list_$$.txt"
    #
    set $(date)
    #
    if test "$1" = "Sun" ; then
            # Backup full semanal:
            #
            rm -f /backup/dados_full*
            tar cfz "/backup/dados_full_$6-$2-$3.tgz" $DATA
            #
            #
            rm -f /backup/config_full*
            tar cfz "/backup/config_full_$6-$2-$3.tgz" $CONFIG
            #
    else
            # Backup incremental diario :
            #
            find $DATA -depth -type f \( -ctime -1 -o -mtime -1 \) -print > $LIST
            tar cfzT "/backup/dados_inc_$6-$2-$3.tgz" "$LIST"
           # rm -f "$LIST"
            #
            find $CONFIG -depth -type f  \( -ctime -1 -o -mtime -1 \) -print > $LIST
            tar cfzT "/backup/config_inc_$6-$2-$3.tgz" "$LIST"
           # rm -f "$LIST"
    fi
    #

    Aguardo um resposta..
    Giuliano

  2. #2
    Super_Diaulas
    Visitante

    Padrão Shell script

    Cara eu tinha um script mais ou menos assim
    mas o backup era separdo por diretórios e eles eram criados de acordo com a data...mas ao contrário começando pelo ano , mes, dia

    mkdir -p `date +%yy/%mm/%dd`

    (não me lembro da sintaxe do date, hehehe).

    e vc pode criar uma variável no inicio para pegar o mês certo que vai ser deletado.
    para descobrir é fácil

    echo `date +%m` - 1 | bc

    ele vai pegar o mes corrente e subtrair 1 resultando no mes passado.

    depois é só dor o rm com resultado do echo.

    rm -rf /backup/`date +%yy`/$MES_PASSADO
    |
    | Resultado do echo

    ou pode usar

    rm -rf /backup/`date +%yy`/`echo `date +%m` - 1 | bc`

    não sei se vai funcionar assim
    Eu não usava a parte de deletar o mes passado, mas a primeira sim
    eu tinha os backups separados por dia.
    o backup do dia de natal ficaria

    /backup/04/12/25/ARQ_DE_BACKUP
    | | |
    | | | |-Dia
    | |---Mes
    |---ano

    Espero que tenha ajudado