Subversion Repositories ALCASAR

Rev

Rev 3230 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log

Rev 3230 Rev 3249
Line 1... Line 1...
1
#!/bin/bash
1
#!/bin/bash
2
# $Id: alcasar-activity_report.sh 3230 2024-11-06 23:38:15Z rexy $
2
# $Id: alcasar-activity_report.sh 3249 2025-02-10 10:21:58Z rexy $
3
#
3
#
4
# Create an activity report for ALCASAR every week (sunday at 5.35 pm --> see cron.d).
4
# Create an activity report for ALCASAR every week (sunday at 5.35 pm --> see cron.d).
5
# We read configuration files and logs to create cool charts.
5
# We read configuration files and logs to create cool charts.
6
# Written by Raphaël PION, Rexy & Tom HOUDAYER
6
# Written by Raphaël PION, Rexy & Tom HOUDAYER
7
 
7
 
Line 148... Line 148...
148
		VALUE=$(who -b | cut -d' ' -f12-)
148
		VALUE=$(who -b | cut -d' ' -f12-)
149
		echo ${LINE_HTML/XXREBOOTXX/$VALUE} >> $HTML_REPORT
149
		echo ${LINE_HTML/XXREBOOTXX/$VALUE} >> $HTML_REPORT
150
 
150
 
151
	elif [ "$(echo $LINE_HTML | grep 'XXMAJCLAMAVXX' | wc -l)" -eq 1 ]
151
	elif [ "$(echo $LINE_HTML | grep 'XXMAJCLAMAVXX' | wc -l)" -eq 1 ]
152
	then
152
	then
153
		VALUE=$(date -d "@$(rpm -qa --queryformat "%{installtime} %{name}\n" | grep -E "clamav-db" | cut -d' ' -f1 )" "+%Y-%m-%d %H:%M:%S")
153
		VALUE=$(date -d "$(rpm -qa --queryformat "%{installtime} %{name}\n" | grep -E "clamav-db" | cut -d' ' -f1 )" "+%Y-%m-%d %H:%M:%S")
154
		echo ${LINE_HTML/XXMAJCLAMAVXX/$VALUE} >> $HTML_REPORT
154
		echo ${LINE_HTML/XXMAJCLAMAVXX/$VALUE} >> $HTML_REPORT
155
 
155
echo
156
	elif [ "$(echo $LINE_HTML | grep 'XXMAJBLXX' | wc -l)" -eq 1 ]
156
	elif [ "$(echo $LINE_HTML | grep 'XXMAJBLXX' | wc -l)" -eq 1 ]
157
	then
157
	then
158
		VALUE=$(cat /etc/e2guardian/lists/blacklists/README | grep 'Last version' | cut -d' ' -f4-6)
158
		VALUE=$(cat /etc/e2guardian/lists/blacklists/README | grep 'Last version' | cut -d' ' -f4-6)
159
		echo ${LINE_HTML/XXMAJBLXX/$VALUE} >> $HTML_REPORT
159
		echo ${LINE_HTML/XXMAJBLXX/$VALUE} >> $HTML_REPORT
160
 
160
 
Line 593... Line 593...
593
###################### ALCASAR : GLOBAL TRAFFIC ######################
593
###################### ALCASAR : GLOBAL TRAFFIC ######################
594
echo "Get Global traffic of the last 30 days"
594
echo "Get Global traffic of the last 30 days"
595
 
595
 
596
ROWS=""
596
ROWS=""
597
EXTIF=$(grep ^EXTIF= $CONF_FILE | cut -d'=' -f2)
597
EXTIF=$(grep ^EXTIF= $CONF_FILE | cut -d'=' -f2)
598
for day in $(vnstat --exportdb -i $EXTIF | grep '^d;' | sort -t";" -k3 -r); do
-
 
599
	day_datas=(${day//;/ })
-
 
600
	day_date=${day_datas[2]}
-
 
601
	day_rxMio=${day_datas[3]}
-
 
602
	day_txMio=${day_datas[4]}
-
 
603
	day_rxKio=${day_datas[5]}
-
 
604
	day_txKio=${day_datas[6]}
-
 
605
	day_act=${day_datas[7]}
-
 
606
 
-
 
607
	if [ $day_act -ne 1 ]; then
-
 
608
		continue
-
 
609
	fi
-
 
610
 
-
 
611
	if [ $day_date -lt $SECS_AGO ]; then
-
 
612
		break
-
 
613
	fi
-
 
614
 
598
 
615
	day_date_formatted=$(date -d @$day_date +%x)
599
while read -r entry; do
616
	day_rx=$(($day_rxMio * 1048576 + $day_rxKio * 1024))
600
    year=$(echo "$entry" | sed -n 's/.*"year": \([0-9]*\).*/\1/p')
617
	day_tx=$(($day_txMio * 1048576 + $day_txKio * 1024))
601
    month=$(echo "$entry" | sed -n 's/.*"month": \([0-9]*\).*/\1/p')
618
	day_total=$(($day_rx + $day_tx))
602
    day=$(echo "$entry" | sed -n 's/.*"day": \([0-9]*\).*/\1/p')
619
	day_rx_formatted=$(numfmt --from=iec --to=iec --suffix=B $day_rx)
603
    rx=$(echo "$entry" | sed -n 's/.*"rx": \([0-9]*\).*/\1/p')
620
	day_tx_formatted=$(numfmt --from=iec --to=iec --suffix=B $day_tx)
604
    tx=$(echo "$entry" | sed -n 's/.*"tx": \([0-9]*\).*/\1/p')
-
 
605
 
-
 
606
    if [ -n "$year" ]; then
-
 
607
        date_year=$year
-
 
608
    fi
-
 
609
 
-
 
610
    if [ -n "$month" ]; then
621
	day_total_formatted=$(numfmt --from=iec --to=iec --suffix=B $day_total)
611
        if [ $month -le 9 ]; then
-
 
612
            date_month="0$month"
-
 
613
        else
-
 
614
            date_month=$month
-
 
615
        fi
-
 
616
    fi
-
 
617
 
-
 
618
    if [ -n "$day" ]; then
-
 
619
        if [ $day -le 9 ]; then
-
 
620
            date_day="0$day"
-
 
621
        else
-
 
622
            date_day=$day
-
 
623
        fi
-
 
624
    fi
-
 
625
 
-
 
626
    if [ -n "$rx" ]; then
-
 
627
        day_rx=$rx
-
 
628
    fi
-
 
629
 
-
 
630
    if [ -n "$tx" ]; then
-
 
631
        day_tx=$tx
-
 
632
    fi
622
 
633
 
-
 
634
    if [ -n "$date_year" ] && [ -n "$date_month" ] && [ -n "$date_day" ] && [ -n "$day_rx" ] && [ -n "$day_tx" ]; then
-
 
635
        day_date="$date_day$date_month$date_year"
-
 
636
        day_total=$((day_rx * day_tx))
623
	ROWS="$ROWS<tr><td>$day_date_formatted</td><td>$day_rx_formatted</td><td>$day_tx_formatted</td><td>$day_total_formatted</td></tr>"
637
        ROWS="$ROWS<tr><td>$day_date</td><td>$day_rx</td><td>$day_tx</td><td>$day_total</td></tr>"
-
 
638
        date_month=""
-
 
639
        date_day=""
-
 
640
        date_year=""
624
done
641
    fi
-
 
642
done < <(vnstat -i $EXIT_IF --json d -b $(date --date="7 days ago" "+%Y-%m-%d") | python -m json.tool | sed -n 's/.*"day": \([0-9]*\).*/\1/p')
625
 
643
 
626
if [ -z "$ROWS" ]; then
644
if [ -z "$ROWS" ]; then
627
	ROWS="<tr><td colspan=\"4\" style=\"text-align: center;\">Aucun jour capturé</td></tr>"
645
	ROWS="<tr><td colspan=\"4\" style=\"text-align: center;\">Aucun jour capturé</td></tr>"
628
fi
646
fi
629
 
647