48 lines
1.2 KiB
Bash
Executable File
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
|