objectif
Comprendre ce que fait un binaire: fichiers ouverts, réseau, temps bloqué, erreurs EPERM/ENOENT.
code minimal
# tracer les fichiers ouverts par une commande
strace -e trace=file -o strace.log -- ls /nonexistent || true
utilisation
# attacher à un PID et tracer réseau + temps
sudo strace -p 1234 -T -e trace=network
# statistiques agrégées
strace -c -f -- curl -s https://data.pm/ > /dev/null
# voir les erreurs uniquement
strace -e trace=%file -f -qq -s 200 -- bash -c 'cat /root/secret' 2>&1 | grep -Eo 'ENOENT|EACCES|EPERM'
variante(s) utile(s)
# tracer seulement connect/send/recv
strace -e trace=connect,sendto,recvfrom -f -- myapp
# filtrer par fd
strace -e write=1 -p 1234
notes
- nécessite des privilèges selon le ptrace_scope (voir
/proc/sys/kernel/yama/ptrace_scope). - sur prod, limitez la durée et le volume (options
-e,-c) pour réduire l’impact. - n’exposez pas de secrets:
-slimite la taille de capture des buffers.