Archiv des Autors: Heiko Thurat

Shell: SWAP nach Nutzung anzeigen

Der Linux-Befehl „top“ kann SWAP für die pid’s anzeigen („f“,SWAP anwählen mit rechter Pfeiltaste, Spalte aktivieren mit Leertaste, „s“ für sort und „q“ für quit).

Alternativ:

for file in /proc/*/status ; do awk '/VmSwap|Name/{printf $2 " " $3}END{ print ""}' $file; done | sort -k 2 -n -r | less

Postgresql: Ermitteln Datenbankname aus postgresql-filesystem

Postgres speichert seine Datenbanken in einem „base“-Ordner mit Unterordnern pro Datenbank. Das Problem ist, dass die Unterordner aus einer Zahlenkombination bestehen (welche die oid der Datenbank darstellt). Falls es zu Problemen mit dem Filesystem kommt, kann man mit folgender Abfrage ermitteln, welcher Unterordner zu welcher Datenbank gehört (von postgresql-console psql):

postgres=# SELECT pg_database.datname,pg_database.oid FROM pg_database ORDER BY datname;

Damit erhält man eine Auflistung aller Datenbanknamen und der zugehörigen oid (welche die Zahl des Unterordners ist).

Ist der Unterordner bekannt (Unterordner = oid zB 16429), kann man mit folgender Abfrage die Datenbank ermitteln:

postgres=# SELECT oid,datname from pg_database WHERE oid=16429;

Beispiel: rsync error in /var/lib/postgresql/9.3/main/base/16429/234035538

Dann verbindet man sich mit der betroffenen Datenbank:

postgres=# \c my-database

Um den Tabellennamen bei Postgresql < 9.4 zu ermitteln:

SELECT 
    n.nspname AS tableschema, 
    c.relname AS tablename
FROM pg_class c
INNER JOIN pg_namespace n ON (c.relnamespace = n.oid)
WHERE c.relfilenode = 234035538; -- "subdir name"
 tableschema |          tablename          
-------------+-----------------------------
public | customers_bookings_services
(1 row)

Für Postgresql > 9.4:

SELECT pg_filenode_relation(0, 234035538); -- "0" stands for default tablespace

Shell: IP’s und MAC-Adressen aus eigenem Netz – sortiert

Welche IP’s sind in meinem Netzwerk und welche MAC-Adresse ist ihnen zugeordnet?

arp -e | sort -t . -k 3,3n -k 4,4n

„arp -e“ listet IP-Adressen und MAC-Adressen im Netz auf (Linux-Style).

„sort“ sortiert diese (-t . = Delimiter „.“, -k x,xn sortieren nach x-tem Element und numerisch sortieren („n“ am Ende vom k-Parameter).

Um den ARP-Cache (IP und MAC gecached) anzuzeigen und zu sortieren:

ip n s | sort -t . -k 3,3n -k 4,4n

Postgresql: Prüfen, ob Replikation noch läuft

postgres=# SELECT client_addr, state, sent_location, write_location, replay_location 
           FROM pg_stat_replication; 

Ausgabe:

client_addr |   state   | sent_location | write_location | replay_location ------------+-----------+---------------+----------------+--------------
10.10.11.14 | streaming | 4C91/1700DF30 | 4C91/1700DF30  | 4C91/1700DE60
(1 row)

Siehe auch: https://blog.medianetix.de/2021/02/postgresql-pruefen-ob-replikation-laeuft/