Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Nächste Überarbeitung | Vorherige Überarbeitung | ||
lpi1:hardlink [2013/12/10 09:42] 127.0.0.1 Externe Bearbeitung |
lpi1: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 ===== | ||
+ | cp /etc/passwd . | ||
+ | ls -li passwd* | ||
+ | ln passwd passwd-hardlink | ||
+ | ls -li passwd* | ||
+ | |||
+ | umbenennen, verschieben, editieren, löschen (Ursprungdatei), ... ausprobieren | ||
+ | |||
+ | ls -li passwd* | ||
+ | cp -l passwd passwd-hardlink-cp | ||
+ | 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 ===== | ||
+ | cd /etc/postfix/maps | ||
+ | ln virtual_alias_maps.txt.db virtual_mailbox_maps.txt.db | ||
+ | postconf -e 'virtual_mailbox_maps = hash:/etc/postfix/maps/virtual_mailbox_maps.txt' | ||
+ | rm virtual_alias_maps.txt.db | ||
===== Backup ===== | ===== Backup ===== | ||
- | todo | + | (( 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 === | ||
+ | mkdir /tmp/backup | ||
+ | cp -a ~/ /tmp/backup/sonntag | ||
+ | |||
+ | ---- | ||
+ | |||
+ | Änderungen im Arbeitsverzeichnis (z.B. anlegen, löschen und bearbeiten von Dateien) | ||
+ | === 2. Backup === | ||
+ | cp -al /tmp/backup/sonntag /tmp/backup/montag | ||
+ | rsync -a --del ~/ /tmp/backup/montag | ||
+ | |||
+ | ---- | ||
+ | |||
+ | Ä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 | ||
+ | |||
+ | … | ||
+ | | ||
===== Verzeichnisse zusammenführen ===== | ===== Verzeichnisse zusammenführen ===== | ||
<file> | <file> | ||
Zeile 23: | Zeile 68: | ||
`-- file9.txt | `-- file9.txt | ||
</file> | </file> | ||
+ | (( | ||
+ | mkdir -p {dir1,dir2}/{a,b,c} | ||
+ | touch dir1/a/file1.txt | ||
+ | touch dir1/a/file2.txt | ||
+ | touch dir1/b/file3.txt | ||
+ | touch dir1/c/file4.txt | ||
+ | touch dir2/a/file5.txt | ||
+ | touch dir2/a/file6.txt | ||
+ | touch dir2/b/file7.txt | ||
+ | touch dir2/b/file8.txt | ||
+ | touch dir2/c/file9.txt | ||
+ | touch dir2/c/file10.txt | ||
+ | )) | ||
mkdir merge | mkdir merge | ||
cp -rl dir1/. dir2/. merge | cp -rl dir1/. dir2/. merge |