Files
statscollect/collect.sh
Marc Mance b11682b324 fixed
2024-06-04 13:12:49 -04:00

48 lines
1.2 KiB
Bash
Executable File

#!/bin/bash
minutes=$1
greeting=$(cat << EOF
.THIS SCRIPT IS FOR FREEBSD.\n\n
This script will scrape:\n
------------------------\n
- Network Interfaces via ifstat\n
- CPU/Memory via top\n
- Disk Stats via gstat\n
- ZFS Pool vai zpool iostat\n\n
Output will be a series of csv files.\n\n
------------------------\n
./collect.sh 60 - will collect for 60 minutes.\n
------------------------\n\n
This script will auto uploaded data to ftp.ixsystems.com when completed.\n
It will also copy the '*.csv' files to /var/log\n
Airgapped systems will need to upload the '*.csv' and/or take a debug.\n
EOF
)
echo $greeting
echo "Starting gstat Collection"
echo "Starting iostat Collection"
echo "Starting zpool iostat Collection"
echo "Starting cpu Collection"
echo "Starting nic Collection"
echo -n "minute:"
for (( i=1; i<=$minutes; i++ )); do
timeout 2s gstat -C -s -d -o -p -I 60s >> gstat.csv &
python3 zpooliostat.py
python3 iostat.py
python3 topstat.py
python3 ifstat.py
echo -n " $i"
# Wait for 60 seconds before the next iteration
sleep 60
done
cp *.csv /var/log
DEBUGFILE=`midclt call system.debug_generate -job` && export DEBUGFILE
curl --user customer:ixcustomer -T $DEBUGFILE ftp.ixsystems.com/debug-`hostname`-`date +%Y%m%d%H%M`.tgz