Apache Logrotate Bash Question

1

... por isso estou tentando girar registros em instâncias do servidor em escala automática da nuvem amazon a cada hora. Eu criei /etc/cron.hourly/logrotate para ler:

#!/bin/bash

test -x /usr/sbin/logrotate || exit 0
/usr/sbin/logrotate -f /etc/logrotate.conf

E alterei o /etc/logrotate.d/apache2 para ler:

/var/log/apache2/*.log {
    missingok
    rotate 100
    create 640 root adm
    sharedscripts
    postrotate
        neoBucket="widget-chapp/dev/log/";
        neoService="apache";
        neoDate=$(date +\%Y\%m\%d\%H);
        echo "hostname: $HOSTNAME";
        neoHost='echo "$HOSTNAME" | sed "s/-//g"';

        # prepend neoService and append YYYYMMDDHH
        for f in *.log.1;
        do
            mv ./$f "$neoHost-$neoService-${f%1}$neoDate";
        done

        # gracefully restart the apache service
        apachectl graceful

        # tar the files
        tar -czf "$neoHost-$neoService-$neoDate.tgz" "$neoHost-$neoService-*.$neoDate"

        echo "neoHost: $neoHost";
        # send the rotated files to s3 bucket
        s3cmd put "$neoHost-$neoService-$neoDate.tgz" s3://$neoBucket > /dev/null

        # remove the individual log files
        rm "$neoHost-$neoService-*.$neoDate";
    endscript
}

... aqui está a pergunta ... como obtenho o valor $ HOSTNAME ... a julgar pela saída na linha 10 no bloco postrotate está vazio.

    
por codemonkey 13.11.2010 / 01:51

1 resposta

2

Supondo que não está no caminho para esse usuário. Experimente /bin/hostname

    
por 13.11.2010 / 02:03