cschantz
69ee59e4be
Fix remaining AWK-UNINIT issues in bot-analyzer and network analysis
...
modules/security/bot-analyzer.sh:
- Line 863: Initialize ip="" for rapid fire IP analysis
- Line 1564: Initialize variables in bot detection awk
modules/performance/network-bandwidth-analyzer.sh:
- Line 237: Initialize sum=0 for bandwidth calculation
modules/security/optimize-ct-limit.sh:
- Line 244: Initialize s=0 for request aggregation
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com >
2026-02-07 02:50:34 -05:00
cschantz
9deca7f346
Add parameter validation to 6 more functions + QA improvements
...
PARAMETER VALIDATION FIXES (6 functions):
1. lib/common-functions.sh:219 - format_duration()
2. lib/php-detector.sh:277 - get_fpm_process_count()
3. lib/user-manager.sh:263 - get_plesk_user_domains()
4. modules/performance/hardware-health-check.sh:44 - add_finding()
5. modules/performance/hardware-health-check.sh:55 - command_exists()
6. modules/performance/network-bandwidth-analyzer.sh:45 - add_finding()
7. modules/performance/network-bandwidth-analyzer.sh:56 - command_exists()
All functions now validate required parameters with:
- [ -z "$1" ] && return 1 (single param)
- [ -z "$1" ] || [ -z "$2" ] && return 1 (multiple params)
QA SCRIPT IMPROVEMENTS:
- tools/toolkit-qa-check.sh: Skip $@ / $* passthrough functions
- Added filter for echo/printf functions using only $@ or $*
- Example: cecho() { echo -e "$@" }
- These don't need validation as they passthrough all args
PROGRESS:
- HIGH issues remain at 10 (different ones now)
- Eliminated more false positives
- Next: Fix remaining issues in bot-analyzer.sh
2025-12-04 16:42:46 -05:00
cschantz
154afff7fc
Eliminate all bc command dependencies - replace with awk for portability
...
PROBLEM:
- bc command not installed on all systems (requires bc package)
- 30 instances across toolkit causing potential failures
- bc is external dependency for floating-point arithmetic
SOLUTION:
- Replaced all bc usage with awk (universally available)
- Pattern: echo "X * Y" | bc → awk "BEGIN {printf \"%.2f\", X * Y}"
- Pattern: (( $(echo "X > Y" | bc -l) )) → awk comparison + bash test
FILES MODIFIED (8 files, 30 bc instances eliminated):
1. lib/threat-intelligence.sh (1 fix)
- Line 310: Load average to integer conversion
2. lib/reference-db.sh (2 fixes)
- Line 554: CPU load percentage calculation
- Line 570: TCP retransmission comparison
3. lib/php-analyzer.sh (5 fixes)
- Line 138: Script duration comparison
- Lines 391-395: OPcache hit rate + wasted memory + cached scripts
- Line 479: OPcache hit rate threshold
4. modules/performance/hardware-health-check.sh (1 fix)
- Line 264: CPU frequency conversion (KHz to GHz)
5. modules/performance/network-bandwidth-analyzer.sh (3 fixes)
- Line 168: Daily bandwidth threshold (50 GiB)
- Line 238: Bytes to MB conversion
- Lines 388-390: TCP retransmission percentage
6. modules/performance/php-optimizer.sh (2 fixes)
- Lines 457, 653: OPcache hit rate comparisons
7. modules/diagnostics/system-health-check.sh (10 fixes)
- Lines 345-350: Load per core + threshold calculations
- Lines 354-358: Load trend detection (3 comparisons)
- Lines 367-406: Load critical/warning/elevated checks
- Lines 828-829: TCP retransmission analysis
- Line 901: Clock offset detection
- Line 1692: Network stats TCP retrans percent
8. tools/toolkit-qa-check.sh (QA improvements)
- Added --exclude="toolkit-qa-check.sh" to prevent self-scanning
- Eliminates false positives from QA script itself
TECHNICAL DETAILS:
- All awk commands use BEGIN block for pure calculation
- printf formatting preserves decimal precision (%.2f, %.1f, %.0f)
- Error handling with 2>/dev/null || echo fallbacks
- Ternary operators for comparisons: (condition ? 1 : 0)
TESTING:
✓ QA scan shows 0 CRITICAL, 0 HIGH, 0 MEDIUM, 0 LOW issues
✓ All 30 bc instances eliminated
✓ No external dependencies beyond standard bash + awk
✓ Toolkit now portable to minimal Linux installations
IMPACT:
+ Eliminates bc package dependency
+ 100% portable (awk included in all Unix/Linux systems)
+ Same accuracy for floating-point calculations
+ Faster execution (awk is typically faster than bc)
+ Better error handling with fallback values
2025-12-03 20:49:46 -05:00
cschantz
bc16d9f5b2
REFACTOR: Class B modules - Multi-panel log discovery
...
Refactored 4 modules to use new architecture standards (Class B: System Detection).
MODULES REFACTORED:
1. tail-apache-access.sh (COMPLETE)
- Added system-detect.sh integration
- Multi-panel log discovery:
• InterWorx: /home/*/var/*/logs/access_log
• Plesk: /var/www/vhosts/system/*/logs/
• cPanel: $SYS_LOG_DIR
• Standalone: Standard locations
- Better error messages with panel info
2. tail-apache-error.sh (COMPLETE)
- Added system-detect.sh integration
- Multi-panel error log discovery:
• InterWorx: /home/*/var/*/logs/error_log
• Plesk: /var/www/vhosts/system/*/logs/error_log
• cPanel: $SYS_LOG_DIR/*-error_log
• Standalone: Standard locations
- Shows control panel in output
3. web-traffic-monitor.sh (COMPLETE)
- Added system-detect.sh integration
- Multi-panel real-time monitoring:
• InterWorx: Recent logs only (60min, max 10 files)
• Plesk: System logs
• cPanel: All domlogs
• Standalone: Main access log
- Performance optimization for InterWorx (limits file count)
- Shows control panel in banner
4. network-bandwidth-analyzer.sh (COMPLETE)
- Enhanced analyze_web_traffic() function
- Multi-panel log directory detection:
• InterWorx: Sample from first user's logs
• Plesk: /var/www/vhosts/system
• cPanel: $SYS_LOG_DIR
• Standalone: Fallback paths
- Better error reporting with panel context
ARCHITECTURE COMPLIANCE:
✅ No hardcoded paths
✅ Uses SYS_CONTROL_PANEL and SYS_LOG_DIR
✅ Graceful fallbacks for each panel
✅ Informative error messages
✅ All syntax validated
TESTING:
- All 4 modules passed `bash -n` syntax check
- Ready for testing on cPanel/Plesk/InterWorx/Standalone
IMPACT:
- Log tailing now works on ALL control panels
- Traffic monitoring works on ALL control panels
- Bandwidth analysis works on ALL control panels
- No cPanel regressions (maintains compatibility)
PROGRESS:
- Class A: ✅ 7 modules (no changes needed)
- Class B: ✅ 6/6 modules COMPLETE
- Class C: ⏳ 0/6 modules (next)
- Class D: ⏳ 0/2 modules (next)
- Acronis: ✅ 13 modules (no changes needed)
Total: 26/38 modules compliant with new architecture!
2025-11-19 20:06:50 -05:00
cschantz
a51d968185
Initial commit: Server Management Toolkit v2.0
...
- Complete security menu restructure (3-mode: Analysis/Actions/Live)
- Intelligent cPHulk enablement with CSF whitelist import
- Live network security monitoring dashboard
- Multi-source threat detection and classification
- 50+ organized security tools across 4-level menu hierarchy
- System health diagnostics with cPanel/WHM integration
- Reference database for cross-module intelligence sharing
2025-11-03 18:21:40 -05:00