jeudi 23 mars 2017

Bash Loop with If Statements not Looping Properly

Quick bash script for awstats. Noting beautiful, but having an issue with loop not ocurring. Output only shows that it has performed one loop for name1, it never gets to name2, name3 with the printf's.

    #!/bin/bash

    awstats_command='perl /var/www/html/awstats/wwwroot/cgi-bin/awstats.pl'
    html_path="/var/www/html/awstats/wwwroot"
    activelogpath="/logs/web/active"
    archivelogpath="/logs/web/archive"
    day='date +%Y-%m-%d.%H'

    # List of web servers we are processing stats for: 
    for i in name1 name2 name3
    do
            if [[ $i = "name1" ]]
            then
                    # Custom reports for name1 contains subdirectory statistics
                    printf "\nProcessing log files for $i...\n"
                    /usr/bin/perl /var/www/html/awstats/wwwroot/cgi-bin/awstats.pl -config=name1 -update
                    printf "done.\n"
                    printf "\nGenerating .html files for $i...\n"
                    /var/www/html/awstats/wwwroot/cgi-bin/do.reports $i
                    $awstats_command -config=$i -output=urldetail:/about/ -staticlinks > $html_path/$i/awstats.$i.about.html
                    printf "done.\n"
            else
                    printf "\nProcessing log files for $i...\n"
                    # Will do something when working $i
                    printf "done.\n"
                    printf "\nGenerating .html files for $i...\n"
                    # Will do something when working $i
                    printf "done.\n"
            fi

            printf "\nCompressing and archiving log files...\n"
            exec /usr/bin/gzip -cv "$activelogpath"/"$i"/*.log > "$archivelogpath"/"$i"/"$(date +%Y%m%d_%H%M%S)".gz
            # rm -f $activelogpath/$i/*.log
            printf "\nCompleted!\n"
    done

Aucun commentaire:

Enregistrer un commentaire