Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
admin_grundlagen:hardlink [2017/01/16 20:20] ingo_wichmann |
admin_grundlagen:hardlink [2023/12/12 13:07] |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== Hardlinks ====== | ||
- | ===== einfache Beispiele ===== | ||
- | cp /etc/passwd . | ||
- | ls -li passwd* | ||
- | ln passwd passwd-hardlink | ||
- | ls -li passwd* | ||
- | |||
- | editieren, umbenennen, verschieben, löschen (Ursprungdatei), ... ausprobieren | ||
- | |||
- | ls -li passwd* | ||
- | cp -l passwd passwd-hardlink-cp | ||
- | ls -li passwd* | ||
- | |||
- | ===== 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 ===== | ||
- | (( Das Beispiel hier ist nicht sehr praxisnah. Eine bessere Variante beschreibe ich unter [[admin_grundlagen:rsync|rsync]] )) | ||
- | === 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 ===== | ||
- | <file> | ||
- | |-- dir1 | ||
- | | |-- a | ||
- | | | |-- file1.txt | ||
- | | | `-- file2.txt | ||
- | | |-- b | ||
- | | | `-- file3.txt | ||
- | | `-- c | ||
- | | `-- file4.txt | ||
- | `-- dir2 | ||
- | |-- a | ||
- | | |-- file5.txt | ||
- | | `-- file6.txt | ||
- | |-- b | ||
- | | |-- file7.txt | ||
- | | `-- file8.txt | ||
- | `-- c | ||
- | |-- file10.txt | ||
- | `-- file9.txt | ||
- | </file> | ||
- | (( | ||
- | mkdir -p {dir1,dir2}/{a,b,c} | ||
- | touch dir1/a/file1.txt | ||
- | touch dir1/a/file3.txt | ||
- | touch dir1/b/file3.txt | ||
- | touch dir1/b/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 | ||
- | )) | ||
- | mkdir merge | ||
- | cp -rl dir1/. dir2/. merge | ||
- | rm -r dir* | ||
- | tree merge | ||
- | |||
- | <file> | ||
- | merge | ||
- | ├── a | ||
- | │ ├── file1.txt | ||
- | │ ├── file2.txt | ||
- | │ ├── file5.txt | ||
- | │ └── file6.txt | ||
- | ├── b | ||
- | │ ├── file3.txt | ||
- | │ ├── file7.txt | ||
- | │ └── file8.txt | ||
- | └── c | ||
- | ├── file10.txt | ||
- | ├── file4.txt | ||
- | └── file9.txt | ||
- | </file> | ||
- | |||
- | (( alternativ mit rsync: | ||
- | rsync -ax --link-dest=/tmp/dir1/ dir1/ merged/ | ||
- | rsync -ax --link-dest=/tmp/dir2/ dir2/ merged/ | ||
- | Achtung: link-dest muss absolut angegeben werden | ||
- | )) | ||