Heim >Betrieb und Instandhaltung >Betrieb und Wartung von Linux >Einführung in Linux-Dateiverknüpfungen und ihre Anwendungen

Einführung in Linux-Dateiverknüpfungen und ihre Anwendungen

齐天大圣
齐天大圣Original
2020-06-20 11:13:492329Durchsuche

Es gibt zwei Arten von Links zu Dateien unter Linux: einen Hardlink und einen Softlink. Heute werde ich Ihnen diese beiden Links und deren Verwendung vorstellen.

Hardlink

Schauen wir uns zunächst die Hardlinks anhand variabler Referenzen in PHP an.

$a = 100;
$b = &$a;

$a kann als Datei angesehen werden, und $b kann als fester Link zur $a-Datei angesehen werden. Der aktuelle Effekt besteht darin, dass sich die Änderung von $a oder $b auf die andere Partei auswirkt.

Wenn Sie jetzt eine der Dateien löschen, ist die andere dann noch vorhanden?

unset($b);

Auch wenn die $b-Datei gelöscht wird, ist die $a-Datei immer noch vorhanden.

Als nächstes wollen wir sehen, ob es mit dem oben Gesagten übereinstimmt. Der Befehl zum Erstellen eines Hardlinks lautet wie folgt:

ln 源文件 链接文件

Derzeit verfügt das System über eine 1.php-Datei. Jetzt erstellen wir einen Hardlink dafür.

# ln 1.php 2.php

# cat 1.php

Jetzt ändern wir die 2.php-Datei, um zu sehen, ob die 1.php-Datei ebenfalls geändert wird.

# echo -e '\n?>' >> 2.php

# cat 1.php

Sie können sehen, dass bei einer Änderung von 2.php auch die 1.php-Datei geändert wird. Jetzt löschen wir die 2.php-Datei und prüfen, ob die 1.php-Datei noch vorhanden ist.

# rm -f 2.php
# ll 1.php
-rw-r--r-- 1 root root 52 Jun 20 08:05 1.php

Sie können sehen, dass die 1.php-Datei auch dann noch vorhanden ist, wenn 2.php gelöscht wird.

Die Funktion von Hardlinks wird oben vorgestellt. Hier sind die Einschränkungen für die Verwendung von Hardlinks:

  • Verzeichnisse können nicht verlinkt werden

  • Kann nicht über Dateisysteme hinweg verknüpft werden

Aufgrund der Einschränkungen der beiden oben genannten Punkte gibt es im täglichen Leben nur sehr wenige Möglichkeiten, Hardlinks zu verwenden. Hier ist eine andere Art von Verknüpfung. Softlink, für den es wie oben erwähnt keine Einschränkungen gibt, daher verwende ich ihn häufig! .

Softlink

Im Allgemeinen werden Softlinks mit Desktop-Verknüpfungen in Windows-Systemen verglichen. Durch das Erstellen von Softlinks können Sie einen Befehl problemlos ausführen, ohne den Verzeichnisspeicherort suchen zu müssen der Datei. Außerdem wird die Softlink-Datei gelöscht, die Quelldatei ist jedoch weiterhin vorhanden. Wenn jedoch die Quelldatei gelöscht wird, hat die verknüpfte Datei keine Auswirkungen.

Softlinks werden in zwei Typen unterteilt: Dateien und Verzeichnisse. Die Funktionen dieser beiden Links werden im Folgenden vorgestellt.

Softlinks zu Dateien erstellen

Haben Sie sich jemals gefragt, warum Sie nach der Installation von MySQL keine absoluten Pfade verwenden müssen? ausführen. Hier kommen Softlinks zum Einsatz.

# which mysql
/usr/bin/mysql
# ll /usr/bin/mysql
lrwxrwxrwx 1 root root 26 Nov  4  2019 /usr/bin/mysql -> /usr/local/mysql/bin/mysql

Es ist ersichtlich, dass die tatsächliche Adresse des Befehls /usr/local/mysql/bin/mysql lautet, es wird jedoch ein Softlink zur Datei zum Verzeichnis /usr/bin/ erstellt, also dort Es ist nicht erforderlich, absolute zu verwenden. Der Befehl kann über den Pfad aufgerufen werden.

Lassen Sie uns selbst einen Datei-Softlink erstellen, um zu sehen, ob dies der Fall ist.

Erstellen Sie zunächst eine Datei soft.sh

vim soft

#!/bin/bash
echo 'study softlink'

# chmod u+x soft

und erstellen Sie dann einen Softlink zur Datei und prüfen Sie, ob es möglich ist, den Befehl direkt auszuführen

# ln -s /root/soft  /usr/bin/
# soft
study softlink

Erstellen Sie einen Softlink zum Verzeichnis

Zunächst müssen wir beachten, dass beim Erstellen eines Softlinks die Zieldatei oder das Zielverzeichnis nicht existieren darf .

Nachfolgend stellen wir ein Szenario vor, das sehr häufig vorkommt:

Die Website-Dateien werden im Verzeichnis /www/wwwroot gespeichert. Da die Systemlaufzeit immer schlechter wird, Das Verzeichnis wird immer größer. Da sich das Verzeichnis in derselben Partition wie das Stammverzeichnis befindet, ist das Stammverzeichnis fast voll. Das andere Partitionsverzeichnis /data verfügt noch über 99 GB verbleibenden Speicherplatz. Wenn Sie zu diesem Zeitpunkt keine Neupartitionierung durchführen möchten, was sollten Sie dann tun, um die Partition freizugeben, auf der sich das Stammverzeichnis befindet?

Im Folgenden verwenden wir Verzeichnis-Softlinks, um dieses Problem zu lösen. Erstellen Sie zunächst das Verzeichnis wwwroot im Verzeichnis /data, verschieben Sie dann alle Dateien im Verzeichnis /www/wwwroot nach /data/wwwfile und löschen Sie dann das Verzeichnis /www/wwwroot. Geben Sie abschließend dem Verzeichnis /data/wwwfile einen Softlink zu /www/wwwroot

mkdir /data/wwwfile
mv /www/wwwroot/* /data/wwwfile
rm -rf /www/wwwroot
ln -s /data/wwwfile /www/wwwroot

Jetzt testen wir, ob das Problem wirklich gelöst ist. Die aktuelle Nutzung der Root-Partition beträgt 19 %, während die Nutzung der /data-Partition 9 % beträgt.

/dev/vda1        40G  7.4G   33G  19% /
/dev/vdb1       500G   43G  458G   9% /data

Wir erstellen eine 2G große Datei im Verzeichnis /www/wwwroot und sehen dann, welche Partitionskapazität sich erhöht hat. Die Antwort, die wir wollen, ist, dass die Nutzung der /data-Partition gestiegen ist, während sich die Root-Partition nicht geändert hat.

dd if=/dev/zero of=/www/wwwroot/bigfile bs=1G count=2
# 然后看看各分区使用容量的变化
/dev/vda1        40G  7.4G   33G  19% /
/dev/vdb1       500G   45G  456G   9% /data

Wie Sie sehen können, beträgt die verfügbare Kapazität der Root-Partition immer noch 33 GB, aber die /data-Partition hat sich von 458 GB auf 456 GB geändert, sodass wir das Problem gelöst haben.

Das obige ist der detaillierte Inhalt vonEinführung in Linux-Dateiverknüpfungen und ihre Anwendungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn