[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M77VG3M84K668PCKSWABX9ZQ":3,"skill-same:01M77VG3M84K668PCKSWABX9ZQ":47},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":24,"commitSha":25,"skillDirectory":26,"forksCount":27,"repositoryHtmlUrl":28,"repositoryHomepageUrl":29,"ownerHtmlUrl":30,"ownerBlogUrl":6,"ownerDescription":31,"updatedAt":32,"install":33,"resources":46},"01M77VG3M84K668PCKSWABX9ZQ","server-watchdog",null,"Monitor remote servers via SSH — check service health (PM2, systemd, Docker), database status (MongoDB, MySQL, PostgreSQL), disk space, memory, and auto-restart crashed services. Sends alerts via messaging. Use when asked to check server status, monitor services, restart crashed processes, or set up server health checks.","Lord1Egypt\u002Fawesome-skill-forge","Lord1Egypt","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F99746359?v=4","01M7592YDNT0XK9WJ0T2MQVPDN","Mohamed Mounir Ali AL Keshita","01M75GRFNHC8VZNWEB8DKDE433",3,"MIT","https:\u002F\u002Fgithub.com\u002FLord1Egypt\u002Fawesome-skill-forge\u002Fblob\u002Fmaster\u002Fcommunity\u002Fclawhub\u002Fs\u002Fssh-server-watchdog\u002FSKILL.md",[],[],"2026-11-15 14:19:17",false,"---\nname: server-watchdog\ndescription: Monitor remote servers via SSH — check service health (PM2, systemd, Docker), database status (MongoDB, MySQL, PostgreSQL), disk space, memory, and auto-restart crashed services. Sends alerts via messaging. Use when asked to check server status, monitor services, restart crashed processes, or set up server health checks.\n---\n\n# Server Watchdog\n\nMonitor and auto-heal remote servers via SSH. Check services, databases, disk, memory — restart what's down, alert what's wrong.\n\n## Prerequisites\n\n- SSH access to target server (password or key-based)\n- `expect` available locally (for password-based SSH)\n- Target server runs PM2, systemd, or Docker for service management\n\n## Quick Reference\n\n### Check PM2 services\n```bash\nssh user@host \"pm2 list\"\nssh user@host \"pm2 logs --lines 20 --nostream\"\n```\n\n### Check MongoDB\n```bash\n# Windows\nssh user@host \"net start | findstr MongoDB\"\nssh user@host \"powershell -Command \\\"(Test-NetConnection -ComputerName 127.0.0.1 -Port 27017).TcpTestSucceeded\\\"\"\n\n# Linux\nssh user@host \"systemctl status mongod\"\nssh user@host \"mongosh --eval 'db.runCommand({ping:1})' --quiet\"\n```\n\n### Check disk & memory\n```bash\n# Linux\nssh user@host \"df -h && free -h\"\n\n# Windows\nssh user@host \"powershell -Command \\\"Get-PSDrive -PSProvider FileSystem | Select Root,Used,Free; \\$os=Get-CimInstance Win32_OperatingSystem; Write-Output ('RAM: '+[math]::Round((\\$os.TotalVisibleMemorySize-\\$os.FreePhysicalMemory)\u002F1MB,1)+'GB \u002F '+[math]::Round(\\$os.TotalVisibleMemorySize\u002F1MB,1)+'GB')\\\"\"\n```\n\n## Workflow\n\n1. **Diagnose** — SSH in, check service status, logs, disk, memory\n2. **Identify** — Parse logs for errors, crashes, OOM, or unclean shutdowns\n3. **Fix** — Restart crashed services (`pm2 restart`, `net start`, `systemctl restart`)\n4. **Verify** — Confirm service is back up and responding\n5. **Alert** — Notify user via messaging with summary\n\n## Crash Analysis\n\nWhen a service is down, check these in order:\n\n1. **Service logs** — `pm2 logs`, `journalctl -u service`, Windows Event Log\n2. **Application logs** — Check log files at configured paths\n3. **System events** — OOM killer, unexpected shutdowns, disk full\n4. **Database logs** — MongoDB: check `mongod.log` for Fatal (`\"s\":\"F\"`) entries\n\n### MongoDB crash patterns\n```\n\"s\":\"F\" — Fatal error (crash)\n\"Unhandled exception\" — Internal bug (often FTDC related)\n\"Detected unclean shutdown\" — Process killed without graceful shutdown\n\"WiredTiger error\" — Storage engine corruption\n```\n\n## Auto-Heal Recipes\n\n### PM2 service restart\n```bash\npm2 restart \u003Cservice-name>\npm2 save  # persist across reboots\n```\n\n### MongoDB (Windows)\n```bash\nnet stop MongoDB\ntimeout \u002Ft 5\nnet start MongoDB\n```\n\n### MongoDB (Linux)\n```bash\nsudo systemctl restart mongod\n```\n\n### Deploy watchdog service\nFor persistent monitoring, deploy the included watchdog script:\n1. Copy `scripts\u002Fmongodb-watchdog.js` to target server\n2. Install: `npm init -y && npm install mongodb`\n3. Start: `pm2 start mongodb-watchdog.js --name mongodb-watchdog`\n4. Save: `pm2 save`\n\n## SSH with password (via expect)\n\nWhen key-based auth isn't available:\n```bash\nexpect -c 'set timeout 20\nspawn ssh -o StrictHostKeyChecking=no user@host \"COMMAND\"\nexpect {\n    \"password:\" { send \"PASSWORD\\r\"; exp_continue }\n    eof\n}\n'\n```\n\n## Alert Template\n\n```\n🚨 Server Alert — [hostname]\n\n⏰ Time: [timestamp]\n❌ Issue: [service] is DOWN\n📋 Cause: [crash reason from logs]\n🔄 Action: Auto-restarted [service]\n✅ Status: [service] is back online\n\n📊 System Health:\n• Memory: X GB \u002F Y GB\n• Disk: Z% used\n• Services: N\u002FN online\n```\n","# Server Watchdog\n\nMonitor and auto-heal remote servers via SSH. Check services, databases, disk, memory — restart what's down, alert what's wrong.\n\n## Prerequisites\n\n- SSH access to target server (password or key-based)\n- `expect` available locally (for password-based SSH)\n- Target server runs PM2, systemd, or Docker for service management\n\n## Quick Reference\n\n### Check PM2 services\n```bash\nssh user@host \"pm2 list\"\nssh user@host \"pm2 logs --lines 20 --nostream\"\n```\n\n### Check MongoDB\n```bash\n# Windows\nssh user@host \"net start | findstr MongoDB\"\nssh user@host \"powershell -Command \\\"(Test-NetConnection -ComputerName 127.0.0.1 -Port 27017).TcpTestSucceeded\\\"\"\n\n# Linux\nssh user@host \"systemctl status mongod\"\nssh user@host \"mongosh --eval 'db.runCommand({ping:1})' --quiet\"\n```\n\n### Check disk & memory\n```bash\n# Linux\nssh user@host \"df -h && free -h\"\n\n# Windows\nssh user@host \"powershell -Command \\\"Get-PSDrive -PSProvider FileSystem | Select Root,Used,Free; \\$os=Get-CimInstance Win32_OperatingSystem; Write-Output ('RAM: '+[math]::Round((\\$os.TotalVisibleMemorySize-\\$os.FreePhysicalMemory)\u002F1MB,1)+'GB \u002F '+[math]::Round(\\$os.TotalVisibleMemorySize\u002F1MB,1)+'GB')\\\"\"\n```\n\n## Workflow\n\n1. **Diagnose** — SSH in, check service status, logs, disk, memory\n2. **Identify** — Parse logs for errors, crashes, OOM, or unclean shutdowns\n3. **Fix** — Restart crashed services (`pm2 restart`, `net start`, `systemctl restart`)\n4. **Verify** — Confirm service is back up and responding\n5. **Alert** — Notify user via messaging with summary\n\n## Crash Analysis\n\nWhen a service is down, check these in order:\n\n1. **Service logs** — `pm2 logs`, `journalctl -u service`, Windows Event Log\n2. **Application logs** — Check log files at configured paths\n3. **System events** — OOM killer, unexpected shutdowns, disk full\n4. **Database logs** — MongoDB: check `mongod.log` for Fatal (`\"s\":\"F\"`) entries\n\n### MongoDB crash patterns\n```\n\"s\":\"F\" — Fatal error (crash)\n\"Unhandled exception\" — Internal bug (often FTDC related)\n\"Detected unclean shutdown\" — Process killed without graceful shutdown\n\"WiredTiger error\" — Storage engine corruption\n```\n\n## Auto-Heal Recipes\n\n### PM2 service restart\n```bash\npm2 restart \u003Cservice-name>\npm2 save  # persist across reboots\n```\n\n### MongoDB (Windows)\n```bash\nnet stop MongoDB\ntimeout \u002Ft 5\nnet start MongoDB\n```\n\n### MongoDB (Linux)\n```bash\nsudo systemctl restart mongod\n```\n\n### Deploy watchdog service\nFor persistent monitoring, deploy the included watchdog script:\n1. Copy `scripts\u002Fmongodb-watchdog.js` to target server\n2. Install: `npm init -y && npm install mongodb`\n3. Start: `pm2 start mongodb-watchdog.js --name mongodb-watchdog`\n4. Save: `pm2 save`\n\n## SSH with password (via expect)\n\nWhen key-based auth isn't available:\n```bash\nexpect -c 'set timeout 20\nspawn ssh -o StrictHostKeyChecking=no user@host \"COMMAND\"\nexpect {\n    \"password:\" { send \"PASSWORD\\r\"; exp_continue }\n    eof\n}\n'\n```\n\n## Alert Template\n\n```\n🚨 Server Alert — [hostname]\n\n⏰ Time: [timestamp]\n❌ Issue: [service] is DOWN\n📋 Cause: [crash reason from logs]\n🔄 Action: Auto-restarted [service]\n✅ Status: [service] is back online\n\n📊 System Health:\n• Memory: X GB \u002F Y GB\n• Disk: Z% used\n• Services: N\u002FN online\n```\n",{"name":5,"description":7},"master","4aa004da461d820f4ea5499e58eb8d196cf99016","community\u002Fclawhub\u002Fs\u002Fssh-server-watchdog",0,"https:\u002F\u002Fgithub.com\u002FLord1Egypt\u002Fawesome-skill-forge","https:\u002F\u002Fskill-explorer-rho.vercel.app","https:\u002F\u002Fgithub.com\u002FLord1Egypt","Unbreakable. Unstoppable. Unmatched⚡.\r\n Speaker of machine tongues 🤖  | World-builder of decentralized dreams 🌐 | Defender of the digital realm🛡️.","2026-06-10 08:21:01",{"source":8,"skillName":5,"commands":34,"prompt":44,"zipAvailable":45},[35,38,41],{"tool":36,"command":37},"npx","npx skills add Lord1Egypt\u002Fawesome-skill-forge --skill server-watchdog",{"tool":39,"command":40},"bunx","bunx skills add Lord1Egypt\u002Fawesome-skill-forge --skill server-watchdog",{"tool":42,"command":43},"pnpm","pnpm dlx skills add Lord1Egypt\u002Fawesome-skill-forge --skill server-watchdog","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FLord1Egypt\u002Fawesome-skill-forge\u002Fblob\u002Fmaster\u002Fcommunity\u002Fclawhub\u002Fs\u002Fssh-server-watchdog\u002FSKILL.md",true,[],[48,55,62,69,76,83],{"skillNo":49,"name":50,"nameZh":6,"description":51,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":52,"categories":53,"keywords":54,"publishedAt":19},"01M785WKJB99G3STR1NF9NRTJW","youtube-content","YouTube transcripts to summaries, threads, blogs.","https:\u002F\u002Fgithub.com\u002FLord1Egypt\u002Fawesome-skill-forge\u002Fblob\u002Fmaster\u002Fskills\u002Fyoutube-content\u002FSKILL.md",[],[],{"skillNo":56,"name":57,"nameZh":6,"description":58,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":59,"categories":60,"keywords":61,"publishedAt":19},"01M785WEFHB0G2S9YA6EPR3H0E","xurl","X\u002FTwitter via xurl CLI: post, search, DM, media, v2 API.","https:\u002F\u002Fgithub.com\u002FLord1Egypt\u002Fawesome-skill-forge\u002Fblob\u002Fmaster\u002Fskills\u002Fxurl\u002FSKILL.md",[],[],{"skillNo":63,"name":64,"nameZh":6,"description":65,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":66,"categories":67,"keywords":68,"publishedAt":19},"01M785W98EDN4EFJXJPMQEHCRC","touchdesigner-mcp","Control a running TouchDesigner instance via twozero MCP — create operators, set parameters, wire connections, execute Python, build real-time visuals. 36 native tools.","https:\u002F\u002Fgithub.com\u002FLord1Egypt\u002Fawesome-skill-forge\u002Fblob\u002Fmaster\u002Fskills\u002Ftouchdesigner-mcp\u002FSKILL.md",[],[],{"skillNo":70,"name":71,"nameZh":6,"description":72,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":73,"categories":74,"keywords":75,"publishedAt":19},"01M785W5S9FP3QBH2V191E025P","test-driven-development","TDD: enforce RED-GREEN-REFACTOR, tests before code.","https:\u002F\u002Fgithub.com\u002FLord1Egypt\u002Fawesome-skill-forge\u002Fblob\u002Fmaster\u002Fskills\u002Ftest-driven-development\u002FSKILL.md",[],[],{"skillNo":77,"name":78,"nameZh":6,"description":79,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":80,"categories":81,"keywords":82,"publishedAt":19},"01M785W2AS08NSSH9YATCV6FJB","teams-meeting-pipeline","Operate the Teams meeting summary pipeline via Hermes CLI — summarize meetings, inspect pipeline status, replay jobs, manage Microsoft Graph subscriptions.","https:\u002F\u002Fgithub.com\u002FLord1Egypt\u002Fawesome-skill-forge\u002Fblob\u002Fmaster\u002Fskills\u002Fteams-meeting-pipeline\u002FSKILL.md",[],[],{"skillNo":84,"name":85,"nameZh":6,"description":86,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":87,"categories":88,"keywords":89,"publishedAt":19},"01M785VXKW4T34BTP1SCHW1R7F","systematic-debugging","4-phase root cause debugging: understand bugs before fixing.","https:\u002F\u002Fgithub.com\u002FLord1Egypt\u002Fawesome-skill-forge\u002Fblob\u002Fmaster\u002Fskills\u002Fsystematic-debugging\u002FSKILL.md",[],[]]