
		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