Цикл Bash с ошибочными утверждениями

Быстрый скрипт bash для awstats. Заметив, красиво, но проблема с петлей не происходит. Вывод только показывает, что он выполнил один цикл для name1, он никогда не попадает в name2, name3 вместе с printf.

#!/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

1 ответ

exec /usr/bin/gzip -cv "$activelogpath"/"$i"/*.log > "$archivelogpath"/"$i"/"$(date +%Y%m%d_%H%M%S)".gz

exec заменяет текущий процесс указанной программой. Выполнение не продолжается после exec заявление. Здесь нет необходимости. Просто позвони gzip без этого.

gzip -cv "$activelogpath/$i"/*.log > "$archivelogpath/$i/$(date +%Y%m%d_%H%M%S).gz"

Там же нет необходимости писать /usr/bin/или оставить и повторно вводить кавычки так часто.

Другие вопросы по тегам