c0de 0 Denunciar post Postado Março 16, 2009 Boa tarde, fiz um script shell que duplica o arquivo original, recria o arquivo original para que o log recomesse e compacta a copia. Mas ao recriar o arquivo, não grava mais nada em log, mesmo alterando a permissão do arquivo. Gostaria de saber como limpar o arquivo original sem ter que recriá-lo. Ex.: arquivo_original.log (300 linhas) DUPLICA ARQUIVO arquivo_original.log (300 linhas) arquivo_temp.log (300 linhas) RECRIA ARQUIVO ORIGINAL arquivo_original.log (0 linhas) arquivo_temp.log COMPACTA A COPIA arquivo_original.log arquivo_temp.tar.gz o script segue abaixo: #!/bin/bash DATAATUAL=$(date +%Y%m%d) DIRETORIOBACKUP=/var/www/backup/sites_logs/ DIRETORIO=$1 SITE=$2 arquivo_original=production.log arquivo_temp=production_temp.log arquivo_compactado='log_production_'$SITE'_'$DATAATUAL'.tar.gz' if [ -d $1 ] then echo "Verificando existencia do arquivo..." if [ -f $DIRETORIO$arquivo_original ] then cd $DIRETORIO echo "Movendo e renomeando para "$arquivo_temp mv $arquivo_original $arquivo_temp echo "Criando novo production.log..." echo "." > $arquivo_original chmod 775 $arquivo_original echo "Compactando "$arquivo_temp" para "$arquivo_compactado tar -cvzf $arquivo_compactado $arquivo_temp echo "Removendo "$arquivo_temp rm -f $arquivo_temp mv $arquivo_compactado $DIRETORIOBACKUP$arquivo_compactado else echo "Nao foi possivel fazer backup de "$DIRETORIOBACKUP$arquivo_original fi else echo "Informe o diretorio onde o arquivo se encontra" fi Desde já agradeço. Compartilhar este post Link para o post Compartilhar em outros sites
Prog 183 Denunciar post Postado Março 18, 2009 Você tentou inves de mover (mv) fazer apenas uma cópia (cp)? Desta forma você não precisa fazer alguns procedimentos, por exemplo: #!/bin/bash DATAATUAL=$(date +%Y%m%d) DIRETORIOBACKUP=/var/www/backup/sites_logs/ DIRETORIO=$1 SITE=$2 arquivo_original=production.log arquivo_temp=production_temp.log arquivo_compactado='log_production_'$SITE'_'$DATAATUAL'.tar.gz' if [ -d $1 ] then echo "Verificando existencia do arquivo..." if [ -f $DIRETORIO$arquivo_original ] then cd $DIRETORIO echo "Copiando para "$arquivo_temp cp $arquivo_original $arquivo_temp echo "Apagando production.log..." echo "" > $arquivo_original echo "Compactando "$arquivo_temp" para "$arquivo_compactado tar -cvzf $arquivo_compactado $arquivo_temp echo "Removendo "$arquivo_temp rm -f $arquivo_temp mv $arquivo_compactado $DIRETORIOBACKUP$arquivo_compactado else echo "Nao foi possivel fazer backup de "$DIRETORIOBACKUP$arquivo_original fi else echo "Informe o diretorio onde o arquivo se encontra" fi Compartilhar este post Link para o post Compartilhar em outros sites