Start hier je back-up of script
`top` draait al, maar de output vertelt u niets over de cgroups die uw containers opslorpen. Dit artikel legt uit hoe u met `systemd-cgtop`, `sg3_utils` en `pg_basebackup` een volledig beeld van uw Linux-infrastructuur opbouwt — van CPU-gebruik per proces tot de gezondheid van uw SCSI-schijven en de integriteit van uw PostgreSQL-cluster. Voor beheerders die verder willen kijken dan een enkele `top`-screenshot.
VEREISTEN
- Een Linux-distributie met systemd (bijv. Ubuntu 22.04+, Debian 12+, RHEL 9+)
- `procps-ng` voor `top` (standaard geïnstalleerd)
- `systemd-cgtop` (onderdeel van systemd, versie 245+)
- `sg3_utils` (versie 1.44+)
- `screen` (versie 4.8.0+)
- PostgreSQL 13+ met `pg_basebackup` (onderdeel van `postgresql-client-common`)
- Root- of sudo-toegang tot de systemen die u wilt monitoren
STAPPEN
1. Installeer de benodigde pakketten
sudo apt update && sudo apt install -y procps systemd sg3-utils screen postgresql-client-commonOp RHEL-gebaseerde systemen gebruikt u `dnf` in plaats van `apt`. Deze pakketten geven u toegang tot alle tools die in dit artikel worden behandeld.
2. Gebruik `top` voor real-time procesmonitoring
Start `top` met een verversingsinterval van 2 seconden:top -d 2
`top` toont actieve processen gesorteerd op CPU-gebruik. Druk op `P` om te sorteren op CPU, `M` voor geheugen, en `k` om een proces te beëindigen. De output bevat per proces de PID, gebruiker, CPU-tijd, geheugengebruik en de commando-regel.
3. Monitor cgroups met `systemd-cgtop`
systemd-cgtop --depth=2Deze tool toont resourcegebruik per controlegroep in plaats van per proces. De `--depth=2` vlag toont zowel de top-level groepen als hun directe kinderen — essentieel om te zien welke container of systemd-service de meeste CPU of geheugen verbruikt. Het scherm ververst standaard elke seconde.
4. Controleer SCSI-apparaatgezondheid met `sg_logs`
sg_logs --temperature /dev/sda
sg_logs --transport /dev/sdaDeze commando's vragen de logpagina's van een SCSI-apparaat op via het LOG SENSE-commando. De eerste toont de temperatuur van de schijf, de tweede geeft transportstatistieken zoals fouttellingen. Vervang `/dev/sda` door het daadwerkelijke apparaatpad — vind dit met `lsblk`.
5. Formatteer of herstel SCSI-schijven met `sg_format`
sudo sg_format --format --size=4096 /dev/sdbDit commando formatteert een SCSI-schijf en stelt de logische blokgrootte in op 4096 bytes. Gebruik dit alleen op schijven die geen data bevatten die u nodig hebt — het wist alles. Dit is geen monitoringtool op zich, maar een essentiële stap in het herstelproces wanneer `sg_logs` fouten of afwijkingen meldt.
6. Zet een seriële netwerkverbinding op met `slattach`
sudo slattach -p slip -s 115200 /dev/ttyS0 &
sudo ip addr add 192.168.1.1/24 dev sl0
sudo ip link set sl0 upDit koppelt een seriële poort (`/dev/ttyS0`) aan een netwerkinterface (`sl0`) met SLIP-protocol op 115200 baud. De tweede en derde regel geven de interface een IP-adres en zetten hem actief. Monitor de verbinding met `ip -s link show sl0` om pakketverlies en fouten te zien.
7. Beheer langlopende processen met `screen`
screen -S backup-sessie
<h2>start hier uw back-up of script</h2>
<h2>Druk Ctrl+A, dan D om te detachen</h2>
screen -r backup-sessieStart een screen-sessie met een naam, voer uw langlopende taak uit, en detach met `Ctrl+A` gevolgd door `D`. De sessie blijft draaien op de achtergrond. Reconnect later met `screen -r backup-sessie` om de voortgang te controleren — uw proces wordt niet afgebroken door een verbroken SSH-verbinding.
8. Maak een consistente PostgreSQL-back-up met `pg_basebackup`
sudo pg_basebackup -h localhost -D /var/backups/postgres/base -U replicator -P -vDit maakt een volledige kopie van het draaiende PostgreSQL-cluster naar `/var/backups/postgres/base`. De `-P` vlag toont de voortgang, `-v` geeft uitgebreide output. De back-up is consistent omdat `pg_basebackup` gebruikmaakt van de WAL-architectuur van PostgreSQL — andere clients worden niet geblokkeerd. Gebruik deze back-up voor disaster recovery of als basis voor een standby-server.
VERIFICATIE
Controleer of alle tools correct werken:top -bn1 | head -20
systemd-cgtop --once
sg_logs --temperature /dev/sda
pg_basebackup --version
screen -lsElk commando moet zonder foutmelding output produceren. `pg_basebackup --version` toont de versie (bijv. 16.2). `screen -ls` toont actieve sessies, of meldt "No Sockets found" als er geen actieve sessies zijn — dat is ook correct.
VEELGESTELDE PROBLEMEN
1. `sg_logs` geeft "Invalid argument" op NVMe-schijven
NVMe-schijven gebruiken het NVMe-protocol, niet SCSI. Gebruik `nvme smart-log /dev/nvme0` (uit het `nvme-cli`-pakket) in plaats van `sg_logs`. Controleer eerst met `lsblk -d -o name,tran` welk protocol uw schijf gebruikt.2. `systemd-cgtop` toont geen container-cgroups
Containers zonder systemd als init draaien niet in een eigen cgroup. Start Docker-containers met `--cgroup-parent` of gebruik `docker stats` voor real-time container-monitoring. Voor LXC-containers gebruikt u `lxc-top` of `lxc-monitor`.3. `pg_basebackup` faalt met "fe_sendauth: no password supplied"
De `replicator`-gebruiker heeft een wachtwoord nodig of `pg_hba.conf` staat geen verbinding toe vanaf localhost. Configureer `/etc/postgresql/16/main/pg_hba.conf` met `local replication replicator peer` of `host replication replicator 127.0.0.1/32 md5`. De juiste methode hangt af van uw PostgreSQL-versie en beveiligingsvereisten.