jptudobem
(usa Debian)
Enviado em 02/03/2011 - 10:02h
Não deu certo.
Tenho vários arquivos em um diretório, arquivos de vários anos, meses, dias, todos misturados. Esse script organiza esses arquivos no seguinte formato:
Backup/2009/Dezembro/21/*
Backup/2009/Dezembro/22/*
Backup/2009/Dezembro/23/*
Backup/2010/Janeiro/23/*
Backup/2010/Janeiro/24/*
E assim por diante.. os arquivos estão separados por ano/mes/dia. O Script joga os arquivos para o diretorio correspondente ja compactando.
Acontece que da forma que tá, está compactando arquivo por arquivo, e não todo em um único. Segue o Script completo:
#!/bin/bash
DIAS_RET=`date --date "1 month ago" +%Y%m%d`
DIR_NFE=/home/tmpnfe
DIR_BKP=Backup
for NFES in `ls -l --time-style=long-iso --sort=time $DIR_NFE | awk '{print $6 "->" $8}'`; do
DIA_NFE=`echo ${NFES} | cut -f3 -d"-"`
MES_NFE=`echo ${NFES} | cut -f2 -d"-"`
ANO_NFE=`echo ${NFES} | cut -f1 -d"-"`
NOM_NFE=`echo ${NFES} | cut -f2 -d">"`
DATA_FULL_NFE=$ANO_NFE$MES_NFE$DIA_NFE
cria_dir_ano () {
if [ -n $1 ]; then
ANO_NFE_LIT=`date --date "$1" +%Y`
echo "Criando Diretorio" >/dev/null
mkdir -p $DIR_NFE/$DIR_BKP/$ANO_NFE_LIT
fi
}
cria_subdir_mes () {
if [ -n $1 ]; then
MES_NFE_LIT=`date --date "$1" +%b`
echo "Criando Subiretorio" >/dev/null
mkdir -p $DIR_NFE/$DIR_BKP/$ANO_NFE_LIT/$MES_NFE_LIT
fi
}
cria_subdir_dia () {
if [ -n $1 ]; then
DIA_NFE_LIT=`date --date "$1" +%d`
echo "Criando Subiretorio" >/dev/null
mkdir -p $DIR_NFE/$DIR_BKP/$ANO_NFE_LIT/$MES_NFE_LIT/$DIA_NFE_LIT
fi
}
copy () {
for ARQS in $1; do
gzip -c $DIR_NFE/$ARQS > $DIR_NFE/$DIR_BKP/$ANO_NFE_LIT/$MES_NFE_LIT/$DIA_NFE_LIT/$ARQS.gz
if [ $? -eq 0 ]; then
rm $DIR_NFE/$ARQS
fi
done
}
if [ $DATA_FULL_NFE -lt $DIAS_RET ]; then
cria_dir_ano $ANO_NFE$MES_NFE$DIA_NFE
cria_subdir_mes $ANO_NFE$MES_NFE$DIA_NFE
cria_subdir_dia $ANO_NFE$MES_NFE$DIA_NFE
copy $NOM_NFE
fi
done