#!/bin/bash # File where the output will be stored output_file="/tmp/test_env.txt" # Function to append command output to the file append_output() { echo "$1" >> "$output_file" echo "--------------------------------------------------" >> "$output_file" } check_root() { euid=$(id -u) if [[ "$euid" != 0 ]]; then echo "Please run as root or with sudo." exit 1 fi } check_root # Create or clear the output file by placing date on first line of file date > "$output_file" # 1. Zpool status append_output "Zpool Status:" zpool status >> "$output_file" # 2. ZFS get all append_output "ZFS Get All:" zfs get all >> "$output_file" # 3. Network interface link speed append_output "Network Interface Link Speed:" for interface in /sys/class/net/*; do echo "$(basename "$interface")" >> "$output_file" ethtool "$(basename "$interface")" | grep "Speed" >> "$output_file" done # 4. Network interface buffer sizes append_output "Network Interface Buffer Sizes:" for interface in /sys/class/net/*; do # Check if ethtool -g is supported if ethtool -g "$(basename "$interface")" &> /dev/null; then ethtool -g "$(basename "$interface")" >> "$output_file" else echo "ethtool -g not supported on $interface" >> "$output_file" fi done # 5. Block device models append_output "Block Device Models:" for device in /dev/sd[a-z]; do if [ -b "$device" ]; then smartctl -i "$device" | grep "Model:" >> "$output_file" fi done # 6. Samba configuration test append_output "Samba Configuration Test:" echo | testparm >> "$output_file" 2>&1 # 7. CPU information append_output "CPU Information:" lscpu >> "$output_file" # 8. Free memory append_output "Free Memory:" free -h >> "$output_file" # End of the script echo "Script execution completed. Output stored in $output_file"