# Deploying Validation Scripts to Test Servers ## Quick Deploy Methods ### Method 1: SCP (Simplest - If You Have SSH Access) ```bash # From your current server (where scripts are): # Deploy to InterWorx server: scp /root/server-toolkit/testing/validate-interworx.sh root@interworx-server-ip:/tmp/ # Deploy to Plesk server: scp /root/server-toolkit/testing/validate-plesk.sh root@plesk-server-ip:/tmp/ # Then SSH and run: ssh root@interworx-server-ip chmod +x /tmp/validate-interworx.sh /tmp/validate-interworx.sh # Get results back: scp root@interworx-server-ip:/tmp/interworx-validation-results.txt ./ ``` ### Method 2: GitHub (If Toolkit is in Git Repo) ```bash # On test server: cd /tmp git clone https://github.com/YOUR_USERNAME/server-toolkit.git cd server-toolkit/testing chmod +x validate-*.sh # Run appropriate script: ./validate-interworx.sh # On InterWorx ./validate-plesk.sh # On Plesk # Results in: /tmp/interworx-validation-results.txt ``` ### Method 3: Wget/Curl (If Scripts Are Hosted) ```bash # On test server: cd /tmp # Download script: wget https://your-server.com/validate-interworx.sh # OR curl -O https://your-server.com/validate-interworx.sh chmod +x validate-interworx.sh ./validate-interworx.sh ``` ### Method 4: Copy-Paste (If No Direct Access) ```bash # On your current server, display the script: cat /root/server-toolkit/testing/validate-interworx.sh # On test server, create file: nano /tmp/validate-interworx.sh # Paste content, save chmod +x /tmp/validate-interworx.sh /tmp/validate-interworx.sh ``` ### Method 5: Archive and Transfer ```bash # Create archive on current server: cd /root/server-toolkit tar -czf /tmp/validation-scripts.tar.gz testing/ # Transfer via SCP: scp /tmp/validation-scripts.tar.gz root@test-server:/tmp/ # On test server: cd /tmp tar -xzf validation-scripts.tar.gz cd testing chmod +x validate-*.sh ./validate-interworx.sh ``` --- ## Step-by-Step: Recommended Workflow ### For InterWorx Server: 1. **Transfer script:** ```bash scp /root/server-toolkit/testing/validate-interworx.sh root@INTERWORX_IP:/tmp/ ``` 2. **SSH to server:** ```bash ssh root@INTERWORX_IP ``` 3. **Make executable and run:** ```bash chmod +x /tmp/validate-interworx.sh /tmp/validate-interworx.sh ``` 4. **Watch the output** - it will show real-time test results with colors 5. **When done, review results:** ```bash less /tmp/interworx-validation-results.txt ``` 6. **Get results back to your machine:** ```bash # From your local machine: scp root@INTERWORX_IP:/tmp/interworx-validation-results.txt ./interworx-results.txt ``` ### For Plesk Server: Same steps, just replace: - `validate-interworx.sh` → `validate-plesk.sh` - `interworx-validation-results.txt` → `plesk-validation-results.txt` --- ## What You'll See During Execution ``` ======================================================================= INTERWORX VALIDATION SCRIPT ======================================================================= This script will verify all assumptions about InterWorx Results will be saved to: /tmp/interworx-validation-results.txt Started: Wed Nov 20 14:30:22 EST 2025 ======================================================================= ======================================================================= TEST 1: Control Panel Detection ======================================================================= [PASS] InterWorx installation directory exists: /usr/local/interworx [PASS] InterWorx config file exists: /usr/local/interworx/iworx.ini [INFO] InterWorx version: 7.10.2 ======================================================================= TEST 2: File System Structure ======================================================================= [PASS] Found test user: testuser with domain: example.com [PASS] Document root exists: /home/testuser/example.com/html [PASS] Log directory exists: /home/testuser/var/example.com/logs [PASS] Access log exists: /home/testuser/var/example.com/logs/access_log ... ``` --- ## After Running - What to Do ### 1. Review the Results File ```bash # Quick summary: grep -E "PASS|FAIL|WARN" /tmp/interworx-validation-results.txt | sort | uniq -c # See critical answers: grep -A5 "QUICK REFERENCE FOR DEVELOPERS" /tmp/interworx-validation-results.txt # See directory structures: grep -A20 "DIRECTORY STRUCTURE" /tmp/interworx-validation-results.txt ``` ### 2. Share Results **Option A: Copy entire file content** ```bash cat /tmp/interworx-validation-results.txt # Copy and paste to pastebin/gist/email ``` **Option B: Transfer file back** ```bash scp root@test-server:/tmp/interworx-validation-results.txt ./ ``` **Option C: Email from server** ```bash mail -s "InterWorx Validation Results" your@email.com < /tmp/interworx-validation-results.txt ``` ### 3. Look for Critical Info Search the results file for: ```bash # Cron user answer: grep "ANSWER.*cron" /tmp/interworx-validation-results.txt # Database prefix answer: grep -i "database prefix" /tmp/interworx-validation-results.txt # Failed tests: grep "FAIL" /tmp/interworx-validation-results.txt ``` --- ## Troubleshooting ### "Permission denied" ```bash # Make sure script is executable: chmod +x /tmp/validate-interworx.sh # Run as root: sudo /tmp/validate-interworx.sh ``` ### "Command not found: tree" **This is OK!** Scripts have fallback to `find` command. Output will still work. ### "No test user/domain found" This means server has no hosting accounts set up. Script will still run but some tests will show WARN. ### Script hangs or takes long time - Database connection tests may wait for timeout if MySQL isn't accessible - Large servers with many domains may take 2-3 minutes - This is normal - let it complete --- ## Security Notes - ✅ Scripts are **read-only** - they don't modify anything (except brief cron test) - ✅ Cron test writes entry then **immediately removes it** - ✅ Results file is in `/tmp/` - automatically cleaned on reboot - ✅ No sensitive passwords are logged - ⚠️ Results file contains domain names, usernames, file paths - ⚠️ Remove results file after review: `rm /tmp/*-validation-results.txt` --- ## Expected Runtime - **InterWorx**: 30-60 seconds (depends on # of users/domains) - **Plesk**: 30-90 seconds (depends on # of domains) --- ## What Gets Created **Files created:** - `/tmp/interworx-validation-results.txt` OR `/tmp/plesk-validation-results.txt` - `/tmp/iworx_cron_backup_*` (temporary, auto-deleted) - `/tmp/plesk_cron_backup_*` (temporary, auto-deleted) **No permanent changes** to the system. --- ## Quick Command Reference ```bash # Deploy scp validate-interworx.sh root@SERVER:/tmp/ # Run ssh root@SERVER "/tmp/validate-interworx.sh" # Get results scp root@SERVER:/tmp/interworx-validation-results.txt ./ # One-liner (deploy, run, get results): scp validate-interworx.sh root@SERVER:/tmp/ && \ ssh root@SERVER "chmod +x /tmp/validate-interworx.sh && /tmp/validate-interworx.sh" && \ scp root@SERVER:/tmp/interworx-validation-results.txt ./ ``` --- ## Need Help? If you encounter issues: 1. Check `/tmp/interworx-validation-results.txt` for error details 2. Run with bash debugging: `bash -x /tmp/validate-interworx.sh` 3. Share the results file with the development team