Categories
Quick help

Die Größe eines Verzeichnisses unter Linux ermitteln

Der Befehl DU zeigt die Menge des von den angegebenen Dateien oder Verzeichnissen verwendeten Speicherplatzes an. Wenn ein Pfad angegeben wird, der ein Verzeichnis ist, fasst DU die Plattennutzung jedes Unterverzeichnisses in diesem Verzeichnis zusammen. Wenn kein Pfad angegeben ist, zeigt du die Plattennutzung des aktuellen Arbeitsverzeichnisses an.

Wenn du ohne irgendwelche Optionen aufgerufen wird, zeigt DU die Plattenbelegung des angegebenen Verzeichnisses und jedes seiner Unterverzeichnisse in Bytes an.

Üblicherweise würde man den vom Verzeichnis belegten Platz in einem für Menschen lesbaren Format anzeigen wollen. Um zum Beispiel die Gesamtgröße des Verzeichnisses /var zu erhalten, würden Sie den folgenden Befehl ausführen:

sudo du -sh /etc

Die Terminalausgabe:

32G	/etc

Erklären wir den Befehl und seine Argumente:

  • Der Befehl beginnt mit sudo, weil die meisten Dateien und Verzeichnisse innerhalb des Verzeichnisses /etc dem Benutzer root gehören und für die normalen Benutzer nicht lesbar sind. Wenn Sie sudo weglassen, gibt der Befehl du “du: kann Verzeichnis nicht lesen” aus.
  • s – Zeigen Sie nur die Gesamtgröße des angegebenen Verzeichnisses an, zeigen Sie keine Dateigrößensummen für Unterverzeichnisse an.
  • h – Größe der Datei einem für Menschen lesbaren Format (h)
  • /etc- Der Pfad zu dem Verzeichnis, dessen Größe Sie ermitteln möchten

Was ist, wenn du die Plattennutzung der Unterverzeichnisse der ersten Ebene anzeigen möchten? Sie haben zwei Möglichkeiten. Die erste besteht darin, das Sternchen-Symbol (*) wie unten gezeigt zu verwenden, was bedeutet: ” alles finden, was nicht mit einem Punkt (.) beginnt”. Die Option -c weist du an, eine Gesamtsumme aller Größen auszudrucken:

sudo du -shc /etc/*

Die ausgabe:

8.0K    /etc/acpi
4.0K    /etc/adduser.conf
4.0K    /etc/adjtime
12K     /etc/alternatives
728K    /etc/apache2
12K     /etc/apm
16K     /etc/apparmor.d
160K    /etc/apt
4.0K    /etc/at.deny
4.0K    /etc/bash.bashrc
4.0K    /etc/bash_completion
8.0K    /etc/bash_completion.d
4.0K    /etc/bindresvport.blacklist
4.0K    /etc/binfmt.d
12K     /etc/ca-certificates
......
...

Eine andere Möglichkeit, einen Bericht über die Festplattennutzung der Unterverzeichnisse der ersten Ebene zu erhalten, ist die Verwendung der Option –max-depth:

sudo du -h --max-depth=1 /etc

Die Ausgabe



		
Categories
Quick help

SSH – Dateien mit SCP senden

SCP steht für Secure Copy und überträgt Dateien im Terminal via SSH zu oder von einen Zielserver.

Senden via SCP

Der Befehl sieht so aus:

scp /pfad/zur/datei <benutzername>@<Domaind oder IP>:/Pfad/

Ein Beispiel:

scp /test.file bob@100.50.20.14:/bob/Ziel/Pfad/test.file

Herunterladen via SCP

Um Daten von einen Server herunter zu laden, gibt man an erster stellen den Quellserver an.
Der Befehl für SCP:

scp <user>@<Domaind oder IP>:/Pfad/Datei /Ziel/Pfad

Beispiel:

scp bob@100.50.20.14:/bob/Ziel/Pfad/test.file /root/ziel/test.file

Daten zwischen zwei Server mit SCP übertragen

Um Dateien zwichen zwei entfernten Server zu übertragen, lassen sich als Quelle und Ziel je ein Computer eintragen

scp <benutzername>@<Domaind oder IP>:/Pfad/zur/Quelldatei <benutzername>@<Domaind oder IP>:/Pfad/zum/Ziel

Beispiel zum übertragen zwischen zwei entfernten Server

scp anna@69.69.0.3:/test.file bob@100.50.20.14:/bob/Ziel/Pfad/test.file
Categories
Quick help

Email in Mailcow finden

Manchmal reicht es, wenn man sich in den Container einlogt

Zuerst wechseln wir in das Verzeichnis, in dem sich der Mailcowcontainer befindet, in meinem Fall ist das

 cd /opt/mailcow-dockerized
docker-compose exec  dovecot-mailcow  /bin/bash

Ab un zu kommt es vor, dass der Container nicht gefunden wird.
Dann kann folgendes helfen:

# finde den Container
docker container ls

# z.B. in meinem Fall:
# f1ed3f47a12f        mailcow/dovecot:1.20    "/docker-entrypoint.…"   2 hours ago        Up 4 minutes
# Benutze die ID f1ed3f47a12f 

# Setze PID für den Container
PID=$(docker inspect --format {{.State.Pid}} f1ed3f47a12f)

# jetzt mit nsenter den namespace betreten
sudo nsenter --target $PID --mount --uts --ipc --net --pid

# Damit hat man Rootzugriff auf den Container
# Um zwischen Container und Hostsystem zu kopieren kann man docker cp verwenden
# z.B.: mail in /home/mail auf dem Host und  /var/vmail als das Ziel 
sudo docker cp /home/mail/domain.tld/username/.Spam/. f1ed3f47a12f:/var/vmail/domain.tld/username/.Spam/
Quelle:
https://www.reddit.com/r/mailcow/comments/7wqy3v/move_old_mail_to_new_mailcow_instance/