// Snippet

Linux: Backup-Tools

Um Backups unter Linux zu erstellen, kann man z.B. Borg Backup oder restic einsetzen:

Beide Tools setzen auf einen ähnlichen Ansatz. Das Backup wird unter anderem inkrementell und verschlüsselt erstellt. Ich setze Borg Backup mit einer Storage Box von Hetzner ein. Der größte Unterschied ist, dass Borg Backup nur über SSH das Backup auf einem anderen Server speichern kann. Bei restic kann das Backup auch in Amazon S3, Google Cloud Storage oder Microsoft Azure gespeichert werden.

Der folgende Artikel gibt einen guten Start in die Einrichtung von Borg Backup: Server-Backups mit Borg: So sichere ich meine Server

// Snippet

ncdu - Große Ordner und Dateien finden

Wenn die Festplatte voll ist, dann hat dies einen negativen Einfluss auf das System. Vieles wird nicht mehr wie gewohnt funktionieren. Mit ncdu lässt sich über das Terminal herausfinden, wo die Ursachen liegen.

Das Tool kann klassisch über apt install ncdu oder brew install ncdu installiert werden.

Mit sudo ncdu / wird die komplette Festplatte eingelesen und man bekommt anschließend eine Übersicht über die größten Ordner und Dateien.

Ein Beispiel für die Ausgabe von ncdu:

ncdu 1.12 ~ Use the arrow keys to navigate, press ? for help
--- / ----------------------------------------------------------
   43.3 GiB [##########] /docker
   23.7 GiB [#####     ] /var
    2.2 GiB [          ] /cache
    1.9 GiB [          ] /home
    1.3 GiB [          ] /usr
  867.3 MiB [          ] /lib
  704.5 MiB [          ] /root
  142.5 MiB [          ] /boot
   38.4 MiB [          ] /tmp
   15.7 MiB [          ] /bin
   15.2 MiB [          ] /sbin
    6.3 MiB [          ] /etc
    2.6 MiB [          ] /run
   16.0 KiB [          ] /opt
   16.0 KiB [          ] /mnt
e  16.0 KiB [          ] /lost+found
    8.0 KiB [          ] /media
    8.0 KiB [          ] /snap
    4.0 KiB [          ] /lib64
e   4.0 KiB [          ] /srv
.   0.0   B [          ] /proc
    0.0   B [          ] /sys
 Total disk usage:  74.1 GiB  Apparent size:  74.0 GiB  Items: 1829938
// Snippet

Docker: Größe von Log-Dateien limitieren

Docker nimmt mit den Containern und Images gut Speicherplatz in Anspruch. Aber auch die Logs der Container können sehr groß werden. Wenn du mal wissen willst wie viel Speicher die Logs benötigen, kannst du dies mit diesem Befehl herausfinden:

docker ps -qa | xargs docker inspect --format='{{.LogPath}}' | xargs ls -hl

Wenn der aktuelle Benutzer nicht die ausreichenden Berechtigungen hat, ist eventuell ein sudo vor dem ls notwendig.

Da ich nur die aktuellen Logs brauche, müssen die nicht sehr lange aufbewahrt werden. In die Datei /etc/docker/daemon.json muss folgendes ergänzt werden:

{
 "log-driver": "json-file",
 "log-opts": {
   "max-size": "10m",
   "max-file": "3"
  }
}

Die Container müssen alle neugestartet werden, damit die Einstellung übernommen wird.

Quellen:
// Snippet

PHP: Inline static caching

Wird eine PHP-Methode mehrfach aufgerufen, lässt sich der Inhalt einer Variable zwischenspeichern.

class Post extends Model
{
    public function commentCount()
    {
        static $cache;

        return $cache ?: $cache = $this->comments()->count();
    }
}
Quelle:
// Snippet

MailHog einrichten

Mit MailHog werden alle E-Mails abgefangen, die von Websites verschickt werden, die in der lokalen Entwicklungsumgebung genutzt werden.

brew install mailhog
brew services start mailhog
echo 'sendmail_path = "/usr/local/bin/mailhog sendmail test@example.org"' > /usr/local/etc/php/7.4/conf.d/mailhog.ini
valet restart

Web-Oberfläche von MailHog: http://localhost:8025

Quelle:
// Snippet

Laravel: Routes besser ausrichten


// Services provider
public function boot()
{
  Route::macro('build', function() {
    return $this;
  });
}

// before - routes/web.php
Route::prefix('/hello')
  -> get('/world', function() {
    return 'hello world';
  })
  ->name('hello.world');


// after
Route::build()
  ->prefix('/hello')
  ->name('hello.world')
  ->get('/world', function() {
    return 'hello world';
  });
Quelle:
// Snippet

DSGVO Everywhere - Links zur neuen Datenschutz-Grundverordnung

Vermutlich verwendest du einen veralteten Browser. Da diese Website auf moderne Technik setzt, benötigst du einen aktuellen Browser, um diese Website richtig darzustellen.