Сравните даты и логи в отформатированном скрипте bash - PullRequest
0 голосов
/ 12 октября 2018

В этом скрипте мне нужно:

1) напечатать текущую дату

2) напечатать дату последнего измененного файла журнала

3) если текущая датаравно модам log1 и log2дата, количество строк в log1, log2

4), если текущая дата равна модам log1 и log2.date, суммируйте их строки (wc log1 + wc log2)

5), если сумма строк log1 и log2> 100,

exit 2

6), если текущая датаи дата последнего мода.log1 и log2 различаются, установите счетчик строк log1 на 0 и счетчик строк log2 на 0.

Вот мой сценарий.Если вы хотите проверить его, сохраните этот сценарий .sh у себя дома и создайте в своем домашнем каталоге непустой файл log_1.log и непустой файл log_2.log.

В строке есть синтаксические ошибки29.

#!/bin/bash

#current date
printf "Current date:\n"

current_date=$(date +'%d  %B' | cut -c1-7) # 

echo $current_date #  

###########################################################

printf "Last modify date of log 1:\n"

date_log_1=$(ls -oF log_1.log | gawk '{print $6" ", $5'})

echo $date_log_1

printf "Last modify date of log 2:\n"

date_log_2=$(ls -oF log_2.log | gawk '{print $6 " ", $5'})

echo $date_log_2

if [[ $current_date == $date_log_1 ]]; then  
    count_line1=$(wc -l log_1.log)  
    printf "log 1 lines are \n $count_line1 \n"  

# sum count lines 
sum=$(("$count_line1 + $count_line2"))

fi #end

if [[ $current_date == $date_log_2 ]]; then  
    count_line2=$(wc -l ciao2.log)  
    printf "log 2 lines are \n $count_line2 \n"  

sum=$(($count_line1 + $count_line2))

fi

# is sum > 100?
if [[ sum > 100 ]]; 
then
    exit 2;
fi

###########################################################

if [[ $current_date != $date_log_1 ]]; then
    # set line count at 0       
    echo -n "" > log_1.log # set word count at 0
fi

if [[ $current_date != $date_log_2 ]]; then
    # set line count at 0       
    echo -n "" > log_2.log # set word count at 0
fi

1 Ответ

0 голосов
/ 12 октября 2018

Возможно, вы захотите исправить эту строку

date_log_1=$(ls -oF log_1.log | gawk '{print $6" ", $5'})

до

date_log_1=$(ls -oF log_1.log | gawk '{print $6" ", $5}')

(и аналогичная строка чуть ниже).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...