Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Linux host system operations via pyATS — process monitoring, filesystem inspection, Docker container stats, package/tool verification across fleet hosts. Use when checking running processes, monitoring Docker containers, inspecting log files, or verifying system tools on Linux hosts.
.claude/skills/automateyournetwork-pyats-linux-system/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-13 | ✗→✓ | ▲ Improved | 39% | 0% |
| case-15 | ✗→✓ | ▲ Improved | 223% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 310% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 110% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 41% | 0% |
Linux hosts must be defined in the pyATS testbed with os: linux:
yamldevices: linux-host-01: os: linux type: linux connections: cli: protocol: ssh ip: 10.0.0.50 port: 22 credentials: default: username: "%ENV{NETCLAW_USERNAME}" password: "%ENV{NETCLAW_PASSWORD}"
All commands use pyats_run_linux_command:
bashPYATS_TESTBED_PATH=$PYATS_TESTBED_PATH python3 $MCP_CALL "${PYATS_PYTHON:-python3} -u $PYATS_MCP_SCRIPT" pyats_run_linux_command '{"device_name":"linux-host-01","command":"<command>"}'
bashPYATS_TESTBED_PATH=$PYATS_TESTBED_PATH python3 $MCP_CALL "${PYATS_PYTHON:-python3} -u $PYATS_MCP_SCRIPT" pyats_run_linux_command '{"device_name":"linux-host-01","command":"ps -ef"}'
Returns full process listing: UID, PID, PPID, CPU time, start time, command. Use for capacity planning, runaway process detection, and baseline comparison.
bashPYATS_TESTBED_PATH=$PYATS_TESTBED_PATH python3 $MCP_CALL "${PYATS_PYTHON:-python3} -u $PYATS_MCP_SCRIPT" pyats_run_linux_command '{"device_name":"linux-host-01","command":"ps -ef | grep nginx"}'
Filter processes by name. Common targets:
ps -ef | grep python — Python services (MCP servers, automation agents)ps -ef | grep docker — Docker daemon and containersps -ef | grep ssh — SSH connectionsps -ef | grep java — Java applications (Kafka, Elasticsearch)ps -ef | grep node — Node.js services (MCP servers)bashPYATS_TESTBED_PATH=$PYATS_TESTBED_PATH python3 $MCP_CALL "${PYATS_PYTHON:-python3} -u $PYATS_MCP_SCRIPT" pyats_run_linux_command '{"device_name":"linux-host-01","command":"docker stats --no-stream"}'
Returns point-in-time container stats: CPU %, memory usage/limit, network I/O, block I/O, PIDs. The --no-stream flag captures a single snapshot (no continuous output).
What to check:
bashPYATS_TESTBED_PATH=$PYATS_TESTBED_PATH python3 $MCP_CALL "${PYATS_PYTHON:-python3} -u $PYATS_MCP_SCRIPT" pyats_run_linux_command '{"device_name":"linux-host-01","command":"ls -l"}'
bashPYATS_TESTBED_PATH=$PYATS_TESTBED_PATH python3 $MCP_CALL "${PYATS_PYTHON:-python3} -u $PYATS_MCP_SCRIPT" pyats_run_linux_command '{"device_name":"linux-host-01","command":"ls -l /var/log"}'
Common directories to inspect:
/var/log — System and application logs (check sizes, rotation)/etc — Configuration files (verify expected configs exist)/tmp — Temporary files (check for disk space issues)/opt — Third-party applications/home — User home directoriesbashPYATS_TESTBED_PATH=$PYATS_TESTBED_PATH python3 $MCP_CALL "${PYATS_PYTHON:-python3} -u $PYATS_MCP_SCRIPT" pyats_run_linux_command '{"device_name":"linux-host-01","command":"curl -V"}'
Returns curl version, supported protocols (HTTP, HTTPS, FTP, SFTP, etc.), and TLS library info. Use to verify:
pyats_list_devices → identify Linux hosts in testbed
→ pyats_run_linux_command(host, "ps -ef") → check for expected services
→ pyats_run_linux_command(host, "docker stats --no-stream") → container resource usage
→ pyats_run_linux_command(host, "ls -l /var/log") → check log file sizes
→ Severity-sort findings → GAITpyats_list_devices → identify all Docker hosts
→ pyats_run_linux_command per host ("docker stats --no-stream") → collect stats
→ Aggregate: CPU hotspots, memory pressure, network I/O
→ Flag containers approaching resource limits
→ GAITpyats_list_devices → identify target Linux hosts
→ pyats_run_linux_command per host ("ps -ef") → collect all processes
→ Compare against expected process baseline
→ Flag unexpected processes (security concern) or missing processes (service failure)
→ GAITpyats_run_linux_command(host, "curl -V") → verify curl/TLS
→ pyats_run_linux_command(host, "ls -l /opt/application") → verify app installed
→ pyats_run_linux_command(host, "ps -ef | grep application") → verify app running
→ pyats_run_linux_command(host, "docker stats --no-stream") → verify containers healthy
→ GAITRun the same command across multiple Linux hosts concurrently using the pCall pattern:
bash# Host 1 PYATS_TESTBED_PATH=$PYATS_TESTBED_PATH python3 $MCP_CALL "${PYATS_PYTHON:-python3} -u $PYATS_MCP_SCRIPT" pyats_run_linux_command '{"device_name":"linux-host-01","command":"docker stats --no-stream"}' # Host 2 PYATS_TESTBED_PATH=$PYATS_TESTBED_PATH python3 $MCP_CALL "${PYATS_PYTHON:-python3} -u $PYATS_MCP_SCRIPT" pyats_run_linux_command '{"device_name":"linux-host-02","command":"docker stats --no-stream"}' # Host 3 PYATS_TESTBED_PATH=$PYATS_TESTBED_PATH python3 $MCP_CALL "${PYATS_PYTHON:-python3} -u $PYATS_MCP_SCRIPT" pyats_run_linux_command '{"device_name":"linux-host-03","command":"docker stats --no-stream"}'
All hosts execute concurrently. Results aggregated by the agent.
| Skill | Integration | |-------|-------------| | pyats-network | pyats_run_linux_command is tool 7 in the pyATS MCP — same server, different target OS | | pyats-parallel-ops | pCall pattern for fleet-wide Linux host operations | | pyats-health-check | Extend network health checks to include Linux host health | | pyats-linux-network | Network-focused Linux commands (ifconfig, ip route, netstat, route) | | pyats-linux-vmware | VMware ESXi host operations (vim-cmd) for hypervisor management | | netbox-reconcile | Cross-reference Linux host inventory with NetBox DCIM records | | gait-session-tracking | Every Linux command execution logged in GAIT |
pyats_list_devices first — verify Linux hosts exist in the testbed before running commandsps -ef | grep, ensure the pattern doesn't contain shell metacharactersOther measured skills in the registry, with their headline benchmark lift.