Bash tar e saída para o arquivo de log

1

Como posso escrever a operação TAR em um arquivo de log?

tar -czvf arh.tar.gz public_html > 1.log

TAR -czvf funcionou obrigado pessoal!

Agora no script bash:

for i in */ ; do
    sitefolder="$HOME/domains/${i%%/}/public_html"
    if [ -d "$sitefolder" ]
    then
        ( tar -czvf $tbackups/$i".tar.gz" public_html >> $logs/backups.log ; )
    fi
done

Como posso fazer a saída em um arquivo de log como:

domain.com arquivado com sucesso domain1.com arquivado com sucesso e assim por diante.

    
por Alexander Kim 27.12.2013 / 14:42

2 respostas

3

A questão principal é que

tar -czf arh.tar.gz public_html 1

não cria nenhuma saída. Então você precisa de pelo menos

tar -czvf arh.tar.gz public_html 1

para criar qualquer saída. Mas como a saída vai para STDERR em vez de STDOUT você precisará

tar -czvf arh.tar.gz public_html 1 2> 1.log

para capturar qualquer saída no arquivo de log

Geralmente, é melhor fazer novas perguntas em vez de acompanhar o mesmo tópico, mas aqui vamos nós

for i in */ ; do
    sitefolder="$HOME/domains/${i%%/}/public_html"
    if [ -d "$sitefolder" ]; then
        echo "Backing up ${i%%/}" >> $logs/backups.log
        tar -czvf $tbackups/$i".tar.gz" public_html 2>> $logs/backups.log
        echo "Backup of ${i%%/} successfull" >> $logs/backups.log
    fi
done
    
por 27.12.2013 / 14:51
2
tar czvf arh.tar.gz public_html 1 >1.log 2>&1 

Eu adicionei um v para que ele seja detalhado, ou seja, ele mostrará a lista de arquivos / dirs que está sendo tarring e isso entrará em 1.log .

Tem certeza de que deseja tar tanto public_html quanto um arquivo / diretório denominado 1 ? Porque é isso que está escrito

Eu também tirei o - na frente das opções (o tar é compatível com versões muito antigas desse comando, que não usam - , então ele interpreta o primeiro argumento que ele recebe como opções por padrão. É um pouco mais compatível dessa maneira.

    
por 27.12.2013 / 14:51