Gravar seção terminal linux de todos os usuários

mkdir /var/log/session/
chmod 773 /var/log/session/

# check with script is installed
# /etc/profile

timestamp=`date "+%m%d%Y%H%M"`
output=/var/log/session/session.$USER.$$.$timestamp
SESSION_RECORD=started
export SESSION_RECORD
script -t -f -q 2>${output}.timing $output
chmod 600 $output

Fonte: [https://www.2daygeek.com/automatically-record-all-users-terminal-sessions-activity-linux-script-command/]

Compartilhando screen com outro usuário

UsuárioA:

$ cat ~/.screenrc

multiuser on
acladd root
acladd william
# style of screen :D
caption string "%?%F%{= Bk}%? %C%A %D %d-%m-%Y %{= kB} %t%= %?%F%{= Bk}%:%{= wk}%? %n "
caption always
hardstatus alwayslastline
hardstatus string '%{= kG}[ %{G}%H %{g}][%= %{= kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B} %d/%m %{W}%c %{g}]'

UsuárioA:

screen -S MeuScreenShared

Usuário william:

screen -x usuarioA/MeuScreenShared
# se tiver mais de um screen aberto, coloque -r e o pid.tty do screen
screen -x usuarioA/MeuScreenShared -r 1529630.MeuScreenShared

Para facilitar para UsuárioA:

$ cat ~/.bash_profile

alias sharedscreen="screen -S MeuScreenShared"

Manipulando PDFs

Converter PDF A0, A1 … para múltiplos A4

mutool poster -x 6 -y 3 /tmp/arquivo-origem.pdf /tmp/arquivo-saida.pdf

RPM vs DPKG

Equivalente:

rpm -qf $(which PROGRAMA) | dpkg -S $(which PROGRAMA)

Verificar pwd de um processo em execução

lsof -p 1570
pwdx
pwdx 1570
readlink -e /proc/1570/cwd/

Fedora upgrade security

dnf upgrade --refresh --advisory=FEDORA-2024-d02c7bb266

OPNSense FreeBSD

pkg update
pkg install nmap
pkg upgrade
vim /usr/local/etc/ssh/sshd_config
vim /usr/local/etc/inc/plugins.inc.d/openssh.inc
pluginctl -s
/usr/local/sbin/configctl openssh restart

Ótima pergunta! Quando queremos ir além de só "uso de recursos" (CPU, memória, disco, etc) e tentar identificar gargalos reais de desempenho causados no nível de kernel, estamos entrando em território de análise mais profunda — e ferramentas como perf, ftrace, bpftrace, systemtap e eBPF são as melhores amigas nesse caso.

Aqui vai um guia prático e direto:


🧠 1. Diagnóstico geral de gargalos no kernel

vmstat 1

Mostra o comportamento do kernel com relação a swap, IO, processos bloqueados, etc.

  • Atenção especial à coluna wa (wait I/O):
    vmstat 1

Se wa está alto, você tem um gargalo de disco.


iostat -x 1 (do pacote sysstat)

Mostra detalhadamente o uso do disco e os tempos de espera.

iostat -x 1

Foque em:

  • await: tempo médio de espera por I/O
  • svctm: tempo de serviço
  • util: quanto o disco está ocupado (se for ~100%, é gargalo claro)

🔬 2. Ver o que o kernel está fazendo (nível syscall/função)

perf top

Ferramenta poderosa para ver quais funções do kernel estão consumindo CPU.

perf top

Se você ver funções como do_page_fault, sync, io_schedule, etc., você já tem uma pista de onde está o problema (memória, I/O, etc).


perf record + perf report

Use para um perfil mais detalhado:

perf record -a sleep 10
perf report

bpftrace scripts prontos

Se tiver bpftrace instalado, use scripts como:

bpftrace -e 'kprobe:vfs_read { @[kstack()] = count(); }'

Ou:

bpftrace -e 'tracepoint:syscalls:sys_enter_* { @[probe] = count(); }'

Isso mostra as chamadas de sistema mais usadas.


🧱 3. Ver travamentos e esperas

dstat --top-bio

Mostra quem está mais acessando o disco.

iotop

Lista os processos que mais causam I/O no momento, e se estão em espera por disco.


cat /proc/interrupts

Verifique se há sobrecarga de interrupções (geralmente em problemas de rede/disk com drivers):

watch -n1 cat /proc/interrupts

🎯 Resumo do que usar para quê:

Situação Ferramenta recomendada
Disco lento / espera por I/O iostat, vmstat, iotop
CPU em uso pelo kernel perf top, perf report
Muitos context switches / travas vmstat, pidstat, top
Quer saber quem chama syscalls bpftrace, strace, perf
Uso de kernel por processos top -H, htop, pidstat

script de diagnóstico leve, que:

  1. Verifica se o gargalo está em CPU, memória, disco ou I/O.
  2. Usa ferramentas como vmstat, iostat, iotop, perf, etc.
  3. Gera um relatório básico para análise inicial.

🛠️ Script: check-gargalo.sh

#!/bin/bash

echo "==== Diagnóstico rápido de gargalos ===="
echo "Data/Hora: $(date)"
echo

# CPU e memória via vmstat
echo "===> vmstat (CPU, memória, I/O wait):"
vmstat 1 5
echo

# Uso de disco detalhado
echo "===> iostat -x (disco - espera e uso):"
iostat -x 1 5
echo

# Top 5 processos que mais fazem I/O
if command -v iotop &> /dev/null; then
    echo "===> iotop (maior I/O por processo - 5s):"
    sudo iotop -o -b -n 5 | head -n 20
else
    echo "===> iotop não instalado. Use: dnf install iotop"
fi
echo

# Verificando interrupções de hardware (drivers)
echo "===> Interrupções por CPU (verificar se algo domina):"
cat /proc/interrupts | grep -v '^$'
echo

# Verificando funções do kernel (amostragem rápida)
if command -v perf &> /dev/null; then
    echo "===> perf top (funções de kernel mais quentes - 5s):"
    sudo perf top -d 5 --stdio | head -n 20
else
    echo "===> perf não instalado. Use: dnf install perf"
fi
echo

# Stack de chamadas de leitura no kernel
if command -v bpftrace &> /dev/null; then
    echo "===> bpftrace - kstack de vfs_read (10s):"
    sudo bpftrace -e 'kprobe:vfs_read { @[kstack()] = count(); }' -d 10
else
    echo "===> bpftrace não instalado. Pode usar: dnf install bpftrace"
fi

echo
echo "==== Diagnóstico encerrado. Analise os valores de 'wa', 'await', 'util' e 'perf' ===="

📦 Dependências necessárias (instale se quiser usar tudo):

dnf install sysstat iotop perf bpftrace -y

🧪 Como usar:

Salve como check-gargalo.sh, torne executável:

chmod +x check-gargalo.sh
./check-gargalo.sh