Edit File: fetch_top_files.sh
#!/bin/bash # Output file output_file="/usr/local/cptools/textfiles/list_users.txt" > "$output_file" echo "Fetching cPanel users and their home directories..." # Get list of resellers resellers=$(awk -F: '{print $1}' /var/cpanel/resellers) for reseller in $resellers; do echo "Reseller: $reseller" >> "$output_file" echo "====================================" >> "$output_file" # Get cPanel users under the reseller users=$(grep -l "OWNER=$reseller" /var/cpanel/users/* 2>/dev/null | xargs -I {} basename {}) for user in $users; do home_dirs=() # Check all /home* directories for the user's home directory for d in /home*; do if [ -d "$d/$user" ]; then home_dirs+=("$d/$user") fi done if [ ${#home_dirs[@]} -eq 0 ]; then echo "User: $user (Home directory not found)" >> "$output_file" echo "" >> "$output_file" continue fi # Loop through each detected home directory for home_dir in "${home_dirs[@]}"; do echo "User: $user (Home: $home_dir)" >> "$output_file" echo "------------------------------------" >> "$output_file" # Find top 100 largest files find "$home_dir" -type f -exec du -b {} + 2>/dev/null | sort -rn | head -n 100 | while read -r size path; do hr_size=$(numfmt --to=iec --suffix=B "$size") echo "$path : $hr_size" >> "$output_file" done echo "" >> "$output_file" done done echo "" >> "$output_file" done echo "Output written to $output_file"