В этом скрипте мне нужно:
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