🐧 SysAdmin

Linux Ops — Sysadmin Tactical prompts

Prompts pour quand tu es sur un serveur Linux qui chauffe : pourquoi le load average est à 50, pourquoi le disk est à 100%, pourquoi un service ne démarre pas. Diagnostic rapide, pas de tuto académique.

Tested 2026-05 Claude 4.7 OpusGPT-5 #linux#sysadmin#ops#debugging
Honest note — Ces prompts t'aident à structurer un diagnostic — ils ne remplacent JAMAIS la lecture manuelle des logs. Ne lance pas une commande proposée par AI en root sans la comprendre. Toujours faire un `--dry-run` ou équivalent en production avant d'agir.

Prompts in this set

  1. 1. High load average / CPU à 100% — diagnostic en 5 minutes
  2. 2. Disque plein — trouver les Go cachés avant l'OOM service
  3. 3. Un service systemd refuse de démarrer — debug systemd + journalctl
  4. 4. Analyser un log pour identifier le pattern d'erreur dominant
  5. 5. Post-mortem d'un crash serveur (kernel panic / hard reboot)

1. High load average / CPU à 100% — diagnostic en 5 minutes

Le monitoring beep, le load average est à 50, et tu as 10 minutes pour identifier la cause avant que le SLA pète.

Claude 4.7 Opus (2026-05)GPT-5 (2026-05)
Tu es un SRE senior. Mon serveur Linux est en surcharge. Aide-moi à diagnostiquer en 5 minutes.

Voici les sorties de mes commandes initiales :

```
$ uptime
<COLLE_LA_SORTIE>

$ top -bn1 | head -20
<COLLE_LA_SORTIE>

$ free -h
<COLLE_LA_SORTIE>

$ iostat -x 1 3
<COLLE_LA_SORTIE_OU_PRECISE_SI_IOSTAT_NON_INSTALLÉ>

$ vmstat 1 5
<COLLE_LA_SORTIE>
```

Diagnostique en 4 sections :

1. **Verdict primaire** (1 phrase) : où est le bottleneck principal — CPU / Memory / I/O / Network / Process explosion ?
2. **Evidence** : quelle métrique précise t'a mené à ce verdict (cite la valeur).
3. **Commandes suivantes à lancer** (top 5, dans l'ordre) pour confirmer + localiser le coupable. Donne-moi la commande exacte, pas 'utilise top'.
4. **3 hypothèses sur la cause racine** : la plus probable, l'alternative, et la moins probable mais possible. Pour chaque hypothèse, qu'est-ce qui la confirmerait.

Règle : ne propose JAMAIS de killer un process sans avoir vérifié ce qu'il fait avec `lsof -p PID` ou `ps -ef --forest` pour voir l'arbre des processus.
TipAvant tout : `tmux` ou `screen` ta session — si tu reboot ou redéploie pendant l'investigation, tu perds ton contexte. `journalctl -u <service> --since '15 min ago'` est ton meilleur ami.

2. Disque plein — trouver les Go cachés avant l'OOM service

`df -h` montre 100%, le service crashe en boucle, et tu n'as pas la luxe de redémarrer.

Claude 4.7 Opus (2026-05)GPT-5 (2026-05)
Tu es un sysadmin sénior. Mon disque Linux est plein. Je dois libérer de l'espace en 10 minutes sans casser le service en prod.

Voici mes sorties :

```
$ df -h
<COLLE_LA_SORTIE>

$ df -i  # inodes
<COLLE_LA_SORTIE>

$ du -sh /* 2>/dev/null | sort -hr | head -20
<COLLE_LA_SORTIE>
```

Diagnostique :

1. **Cause primaire** : disque plein en bytes OU en inodes ? Quel filesystem ?
2. **Top 5 répertoires/fichiers à cibler** (par ordre de gain potentiel) avec la commande exacte pour identifier précisément ce qui consomme :
   - Pour des logs : `find /var/log -type f -size +500M -exec ls -lh {} \;`
   - Pour des bin : `ncdu` ou `du -h --max-depth=2 /opt | sort -hr`
   - Pour les fichiers supprimés mais retenus par un process : `lsof | grep -i deleted | awk '{print $7, $9}' | sort -hr`
3. **Actions de libération sûres** (top 3) : pour chaque action, donne la commande EXACTE + ce que ça libère typiquement + le risque.
4. **Actions à NE PAS faire** sous pression (top 3) — exemples : `rm -rf /var/log/*` sans `truncate -s 0`, `apt clean` sans vérifier les packages installés, supprimer un mountpoint sans le `umount`.
5. **Fix permanent** une fois la crise passée : 1 changement à mettre en place pour éviter la rechute (logrotate config, monitoring threshold, etc.).

Règle : si je vois 'fichiers supprimés mais retenus' (lsof + deleted), redémarrer le process (PID) libère l'espace SANS rm. Souvent c'est la première chose à essayer.
TipL'ennemi numéro 1 sur un disque plein en prod : les fichiers supprimés mais retenus par un process (souvent un truncate de log mal fait). `lsof | grep deleted` les révèle. Le `rm` n'a pas marché parce que un FD est encore ouvert.

3. Un service systemd refuse de démarrer — debug systemd + journalctl

Tu redémarres après un déploiement et systemctl status dit 'failed'. journalctl est verbeux et tu cherches l'erreur précise.

Claude 4.7 Opus (2026-05)GPT-5 (2026-05)
Tu es un sysadmin systemd-natif. Mon service `<NOM_SERVICE>.service` ne démarre pas. Je te donne les sorties :

```
$ systemctl status <NOM_SERVICE>.service
<COLLE_LA_SORTIE>

$ journalctl -u <NOM_SERVICE>.service -n 100 --no-pager
<COLLE_LA_SORTIE>

$ systemctl cat <NOM_SERVICE>.service
<COLLE_LE_FICHIER_UNIT>
```

Aide-moi à diagnostiquer :

1. **Erreur primaire** : repère la ligne ou exit code qui révèle le vrai problème (souvent enterré dans 100 lignes de logs). Cite-la verbatim.
2. **Classification** : config / permissions / dépendance / port / dépendance externe (DB, network) / OOM / autre.
3. **Top 3 hypothèses** sur la cause + commande pour confirmer chacune :
   - permissions : `ls -la /chemin/que/le/service/utilise`
   - port : `ss -tlnp | grep <PORT>` (qui d'autre l'occupe)
   - DB : `psql -h ... -U ... -c 'SELECT 1'` (DB accessible ?)
   - SELinux/AppArmor : `ausearch -m avc -ts recent` ou `dmesg | grep -i denied`
4. **Action de fix** la plus probable, avec la commande exacte.
5. **Comment éviter la rechute** : 1 amélioration du unit file (ex: ajouter `Restart=on-failure` + `RestartSec=10s` + `StartLimitBurst=5`) ou 1 healthcheck à mettre.

Règle : si l'erreur dit 'Address already in use', NE PROPOSE PAS `kill -9 $(lsof -ti:PORT)` aveuglément — d'abord identifie QUI tient le port (peut être un autre service légitime).
Tip`journalctl -xe` montre les explications de systemd ('xe' = explanation extended). Beaucoup plus utile que `journalctl -u` brut pour les erreurs de boot.

4. Analyser un log pour identifier le pattern d'erreur dominant

Tes logs sont en alerte continue — tu veux savoir quelle catégorie d'erreur représente 90% du bruit avant d'agir.

Claude 4.7 Opus (2026-05)GPT-5 (2026-05)
Tu es un SRE qui analyse des logs production. Je te donne un échantillon de ~200 lignes du log d'un service. Trouve les patterns récurrents.

Format de mon log : <ex: nginx access log, JSON structured logs, Java stack traces, etc.>

Lignes du log :
```
<COLLE_200_LIGNES_MAX>
```

Analyse :

1. **Top 5 patterns d'erreur** (groupés par type, pas par occurrence individuelle) — pour chacun : pattern type (regex ou description), nombre d'occurrences dans l'échantillon, % du total.
2. **Pour le pattern #1** : analyse approfondie — quelle est la cause probable, est-ce une vraie erreur ou du bruit (timeout normal vs crash), faut-il agir maintenant ou demain matin.
3. **Pattern à ignorer / silence** : repère 1-2 patterns qui sont du bruit (healthcheck failure d'un load balancer, timeout TCP d'un client mobile, etc.) et qu'on devrait filtrer du dashboard.
4. **Pattern à élever en alerte** : repère 1 pattern qui devrait déclencher un PagerDuty (ex: 'OutOfMemoryError', 'connection refused to primary DB').
5. **Une recommandation logging** : un améliorement structurel (ajouter un correlation ID, sortir un champ JSON spécifique, etc.) qui rendrait le diagnostic 10x plus rapide la prochaine fois.

Format : tableau pour 1, paragraphes courts pour 2-5.
TipSi tes logs ne sont pas structurés (JSON), commence par ça. `jq` sur des logs JSON > `grep` sur des logs texte, à vie. Stack Datadog/Loki/ELK qui peuvent agréger automatiquement les patterns valent leur prix dès 50 services.

5. Post-mortem d'un crash serveur (kernel panic / hard reboot)

Le serveur a rebooté seul à 3h du matin, tu cherches l'explication dans les logs persistents avant de remettre en service.

Claude 4.7 Opus (2026-05)
Tu es un SRE post-mortem. Mon serveur Linux a redémarré seul à <HEURE>. Je dois savoir POURQUOI avant de le remettre en service.

J'ai collecté :

```
$ last -x | head -20  # reboot history
<COLLE>

$ journalctl --list-boots
<COLLE>

$ journalctl -b -1 -n 100 --no-pager  # logs du boot précédent (= avant le crash)
<COLLE_LES_100_DERNIÈRES_LIGNES_AVANT_LE_REBOOT>

$ dmesg | grep -iE 'oom|panic|hardware|error' | tail -30
<COLLE>

$ uptime
<COLLE>
```

Diagnostique :

1. **Cause primaire identifiée** (ou 'pas concluant — voir #4' si les logs ne suffisent pas) : OOM kill, kernel panic, hardware fault (disk/RAM/PSU), watchdog timeout, mise à jour automatique, ou autre.
2. **Timeline reconstituée** : 5 dernières minutes avant le reboot — qu'est-ce qui s'est passé ?
3. **Le 'smoking gun'** : la ligne précise (cite-la) qui explique le mieux le reboot.
4. **Si pas concluant** : quels logs supplémentaires je devrais récupérer pour aller plus loin (mcelog pour MCE hardware, IPMI System Event Log, SMART status, vendor logs).
5. **Action avant remise en service** : checklist de 5 vérifications (fsck si forced reboot, vérifier l'état RAID / disk SMART, vérifier que les services ont bien fini leur graceful shutdown, etc.).
6. **Recommandation monitoring** : 1 alerte à ajouter qui aurait détecté le pattern AVANT le crash.

Règle : ne remets pas le serveur en prod sans avoir compris la cause. Un reboot sans explication = peut se reproduire dans les heures suivantes.
TipSur du physical hardware : toujours regarder IPMI SEL (`ipmitool sel list`) — Linux ne voit pas tout, le BMC enregistre les events hardware avant que l'OS puisse réagir. Sur cloud : regarder le 'system status check' (AWS) ou 'host event' (GCP).

How to use these prompts

Each prompt has placeholders in <ANGLE_BRACKETS> — fill them in before pasting. Copy the prompt with the button, paste into Claude, ChatGPT, Gemini, or any chat-UI'd LLM.

Why "model tested" dates matter

LLMs improve and regress with every release. A prompt that worked on Claude 3.5 may need rewriting for Claude 4. The dates show when each prompt was last verified — anything older than 6 months should be re-tested before depending on it.

Found a better prompt?

Hit contact and share — we keep prompts that beat ours.