Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
lpi1:hardlink [2014/05/15 13:12] 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 ===== | ===== Datei umbenennen ohne Ausfallzeit ===== | ||
cd /etc/postfix/maps | cd /etc/postfix/maps | ||
- | ln virtual_alias_maps.txt virtual_mailbox_maps.txt | + | ln virtual_alias_maps.txt.db virtual_mailbox_maps.txt.db |
- | postmap virtual_mailbox_maps.txt | + | |
postconf -e 'virtual_mailbox_maps = hash:/etc/postfix/maps/virtual_mailbox_maps.txt' | postconf -e 'virtual_mailbox_maps = hash:/etc/postfix/maps/virtual_mailbox_maps.txt' | ||
- | rm virtual_alias_maps.txt virtual_alias_maps.txt.db | + | rm virtual_alias_maps.txt.db |
===== 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 /usr/share/doc montag | + | rsync -a --del ~/ /tmp/backup/montag |
+ | ---- | ||
+ | |||
+ | Änderungen im Arbeitsverzeichnis (z.B. anlegen, löschen und bearbeiten von Dateien) | ||
=== 3. Backup === | === 3. Backup === | ||
- | cp -a montag dienstag | + | cp -al /tmp/backup/montag /tmp/backup/dienstag |
- | rsync -a /usr/share/doc dienstag | + | rsync -a --del ~/ /tmp/backup/dienstag |
- | ... | + | … |
+ | | ||
===== Verzeichnisse zusammenführen ===== | ===== Verzeichnisse zusammenführen ===== | ||
<file> | <file> | ||
Zeile 42: | 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 |