Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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
fiCarregando comentários...