Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
admin_grundlagen:hardlink [2017/01/16 13:50] art |
admin_grundlagen:hardlink [2023/12/12 13:07] (aktuell) |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== Hardlinks ====== | + | ====== Links ====== |
+ | |||
+ | Zur Unterscheidung zu [[symbolische Links|symbolischen Links]] werden die gewöhnlichen Links manchmal auch Hard Links genannt. | ||
===== einfache Beispiele ===== | ===== einfache Beispiele ===== | ||
cp /etc/passwd . | cp /etc/passwd . | ||
Zeile 6: | Zeile 9: | ||
ls -li passwd* | ls -li passwd* | ||
- | editieren, umbenennen, verschieben, löschen (Ursprungdatei), ... ausprobieren | + | umbenennen, verschieben, editieren, löschen (Ursprungdatei), ... ausprobieren |
ls -li passwd* | ls -li passwd* | ||
Zeile 12: | Zeile 15: | ||
ls -li passwd* | ls -li passwd* | ||
+ | ===== Wo befinden sich auf meinem System Hardlinks? ==== | ||
+ | find / -xdev -type f -links +1 -ls | ||
+ | find / -xdev -type f -links +1 -printf '%h\n' | uniq -c | ||
===== Datei umbenennen ohne Ausfallzeit ===== | ===== Datei umbenennen ohne Ausfallzeit ===== | ||
cd /etc/postfix/maps | cd /etc/postfix/maps | ||
Zeile 20: | Zeile 26: | ||
===== Backup ===== | ===== Backup ===== | ||
(( Das Beispiel hier ist nicht sehr praxisnah. Eine bessere Variante beschreibe ich unter [[admin_grundlagen:rsync|rsync]] )) | (( Das Beispiel hier ist nicht sehr praxisnah. Eine bessere Variante beschreibe ich unter [[admin_grundlagen:rsync|rsync]] )) | ||
+ | (( Todo: das selbe mit ''cp --reflink'' testen. Reflink-Kopien benötien ähnlich wenig Platz wie Hardlinks, haben aber ihre eignen Inodes inkl. Berechtigungen, Eigentümer usw. Reflinks benötigen BTRFS, ZFS oder eine aktuelle Version von XFS (xfsprogs 5.1 und Linux 5.4) )) | ||
=== 1. Backup === | === 1. Backup === | ||
- | cp -a /usr/share/doc sonntag | + | mkdir /tmp/backup |
+ | cp -a ~/ /tmp/backup/sonntag | ||
+ | ---- | ||
+ | |||
+ | Änderungen im Arbeitsverzeichnis (z.B. anlegen, löschen und bearbeiten von Dateien) | ||
=== 2. Backup === | === 2. Backup === | ||
- | cp -al sonntag montag | + | cp -al /tmp/backup/sonntag /tmp/backup/montag |
- | rsync -a --del /usr/share/doc/ montag | + | rsync -a --del ~/ /tmp/backup/montag |
- | === 3. Backup === | + | ---- |
- | cp -al montag dienstag | + | |
- | rsync -a --del /usr/share/doc/ dienstag | + | |
- | ... | + | Änderungen im Arbeitsverzeichnis (z.B. anlegen, löschen und bearbeiten von Dateien) |
+ | === 3. Backup === | ||
+ | cp -al /tmp/backup/montag /tmp/backup/dienstag | ||
+ | rsync -a --del ~/ /tmp/backup/dienstag | ||
- | ===== Platzsparende Backups ===== | + | … |
- | mkdir /var/tmp/backup | + | |
- | cp -a ~ /var/tmp/backup/sonntag | + | |
- | echo geheim > passwd # Veränderungen zur Sichtbarkeit | + | |
- | ls | + | |
- | rm oh-oh.jpg # Veränderungen zur Sichtbarkeit | + | |
- | cp -al /var/tmp/backup/sonntag /var/tmp/backup/montag #Handlinks werden angelegt, keine Kopien | + | |
- | rsync -av --del ~/ /var/tmp/backup/montag #Nur änderungen werden kopiert | + | |
| | ||
===== Verzeichnisse zusammenführen ===== | ===== Verzeichnisse zusammenführen ===== | ||
Zeile 66: | Zeile 71: | ||
mkdir -p {dir1,dir2}/{a,b,c} | mkdir -p {dir1,dir2}/{a,b,c} | ||
touch dir1/a/file1.txt | touch dir1/a/file1.txt | ||
- | touch dir1/a/file3.txt | + | touch dir1/a/file2.txt |
touch dir1/b/file3.txt | touch dir1/b/file3.txt | ||
- | touch dir1/b/file4.txt | + | touch dir1/c/file4.txt |
touch dir2/a/file5.txt | touch dir2/a/file5.txt | ||
touch dir2/a/file6.txt | touch dir2/a/file6.txt | ||
Zeile 74: | Zeile 79: | ||
touch dir2/b/file8.txt | touch dir2/b/file8.txt | ||
touch dir2/c/file9.txt | touch dir2/c/file9.txt | ||
+ | touch dir2/c/file10.txt | ||
)) | )) | ||
mkdir merge | mkdir merge |