私のシステムのどのプログラムが最後の再起動後に最も頻繁にPIDを取得し、どのくらいの頻度で受信されるかを確認したいと思います。今すぐ実行すると、列と列が表示されますが、top
現在のシステム状態のみを表示できます。一部のログで採掘したり、一部のログを有効にしたいので、新しい内容があるたびにテーブルに行を追加してそのテーブルを分析したいと思います。たとえば、PID
COMMAND
PID
COMMAND
1 root 20 0 168424 10960 7820 S 0.0 0.1 0:02.78 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd
3 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_gp
4 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_par_gp
6 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/0:0H-events_highpri
9 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 mm_percpu_wq
10 root 20 0 0 0 0 S 0.0 0.0 0:02.26 ksoftirqd/0
11 root 20 0 0 0 0 I 0.0 0.0 0:31.57 rcu_sched
PID
複数のsが終了したことがわかります(例:5、7、8)。一度始めたら、すべて録音したいです。これを行うコマンドやユーティリティはありますか?
答え1
auditd
これは、Linuxカーネルに組み込まれている監査機能を使用する基本的なソリューションです。
auditctl -a always,task # the one below should also work; pick one
auditctl -a always,exit -F arch=b64 -S clone,fork,vfork,execve
systemctl restart auditd
# wait a while and use your computer
または、audit
構成ファイルを作成してサービスを有効にして再起動します。
echo "-a always,task" > /etc/audit/rules.d/logpid.rules
echo "-a always,exit -F arch=b64 -S clone,fork,vfork,execve" > /etc/audit/rules.d/logpid.rules
systemctl enable auditd
systemctl start auditd
reboot
その後、再起動して一定期間使用して監査レポートを確認してください。
aureport --start today --interpret --executable --summary # sort by execs the number of audit events
aureport --start today --interpret --syscall --summary