tcpaccept.bt
Linux
Publiée le
2026-10-02 05:18:55
bpftrace
# Pour vérifier les informations de support BPF du noyau, tu peux faire ça :
bpftrace --info
# Lister tous les points de sondage (probes) disponibles pour que tu saches quoi tracer :
bpftrace -l
# Exécuter un programme simple en mémoire pour compter les appels système 'open' :
bpftrace -e 'kprobe:sys_open { @count = @count + 1; printf("Open détecté!\n") }'
# Tracer l'activité d'un processus spécifique (PID 1234) et afficher le message :
bpftrace -p 1234 -e 'tracepoint:syscalls/sys_enter { printf("Processus %d entre dans un appel système.\n", pid) }'
# Exécuter une commande shell et activer les sondes USDT sur le processus résultant :
bpftrace -c "ls /etc"
# Tracer l'utilisation du temps CPU pour toutes les fonctions noyau (kprobe) :
bpftrace -e 'kprobe:do_sys_open { @cpu_time = nsecs; }'
# Rediriger toute la sortie de traçage vers un fichier spécifique :
bpftrace -o /tmp/trace_output.txt -e '...'
# Exécuter une séquence complexe en utilisant des includes pour ne pas surcharger le script :
bpftrace --include scripts/common.inc -e 'kprobe:read { print(args) }'
# Désactiver les messages inutiles pour un traçage plus propre et silencieux :
bpftrace -q -e '...'
# Permettre l'utilisation de fonctions intégrées non sécurisées si nécessaire (attention !) :
bpftrace --unsafe -e '...'
# Tracer le format JSON des événements au lieu du texte par défaut pour un parsing facile :
bpftrace -f FORMAT json -e '...'
# Utiliser une variable d'environnement ou un argument de ligne de commande dans ton script :
bpftrace -e 'printf("Le traçage est lancé avec l\'argument %s\n", $ARGV[0])'
# Vérifier la syntaxe et les options sans lancer le traçage réel (utile pour déboguer) :
bpftrace --help
# Activer des sémaphores USDT basés sur un chemin de fichier spécifique :
bpftrace --usdt-file-activation /var/log/myapp.log
# Tracer l'entrée et la sortie d'une fonction système (ex: write) :
bpftrace -e 'kprobe:sys_write { printf("Write entré.\n"); } kretprobe:sys_write { printf("Write sorti.\n") }'