Maison  >  Article  >  Opération et maintenance  >  Introduction aux liens de fichiers Linux et à leurs applications

Introduction aux liens de fichiers Linux et à leurs applications

齐天大圣
齐天大圣original
2020-06-20 11:13:492262parcourir

Il existe deux types de liens vers des fichiers sous Linux, l'un est un lien physique et l'autre est un lien logiciel. Aujourd'hui, je vais vous présenter ces deux liens et comment les utiliser.

Lien physique

Comparons-les en utilisant des références variables en php.

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

$a peut être vu comme un fichier, et $b peut être vu comme un lien physique vers le fichier $a. L'effet actuel est que si $a ou $b est modifié, cela affectera l'autre partie.

Si vous supprimez l'un des fichiers maintenant, l'autre existera-t-il toujours ?

unset($b);

Même si le fichier $b est supprimé, le fichier $a existe toujours.

Ensuite, voyons si c'est la même chose que ce qui a été dit ci-dessus. La commande pour créer un lien physique est la suivante :

ln 源文件 链接文件

Actuellement, le système dispose d'un fichier 1.php. Créons maintenant un lien physique pour celui-ci.

# ln 1.php 2.php

# cat 1.php

Modifions maintenant le fichier 2.php pour voir si le fichier 1.php sera également modifié.

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

# cat 1.php

Vous pouvez voir que si 2.php est modifié, le fichier 1.php sera également modifié. Supprimons maintenant le fichier 2.php et voyons si le fichier 1.php existe toujours.

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

Vous pouvez voir que même si 2.php est supprimé, le fichier 1.php existe toujours.

La fonction des liens physiques est présentée ci-dessus. Voici les restrictions sur l'utilisation des liens physiques :

  • Impossible de lier des répertoires

  • Impossible de créer un lien entre les systèmes de fichiers

En raison des limitations des deux points ci-dessus, il existe très peu d'occasions d'utiliser des liens physiques dans la vie quotidienne. Voici un autre type de lien -. lien logiciel, qui n'a aucune restriction comme mentionné ci-dessus, donc je l'utilise beaucoup ! .

Lien logiciel

Généralement, les liens symboliques sont comparés aux raccourcis du bureau dans les systèmes Windows. En créant des liens symboliques, vous pouvez facilement exécuter une commande sans utiliser Rechercher l'emplacement du répertoire. du dossier. De plus, le fichier de lien symbolique est supprimé, mais le fichier source existe toujours. Cependant, si le fichier source est supprimé, le fichier lié n'a aucun effet.

Les liens logiciels sont divisés en deux types : les fichiers et les répertoires. Les fonctions de ces deux liens sont présentées ci-dessous.

Créer des liens symboliques vers des fichiers

Avez-vous déjà réfléchi à la raison pour laquelle vous n'avez pas besoin d'utiliser des chemins absolus après avoir installé MySQL ? à exécuter. Des liens symboliques sont utilisés ici.

# 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

On peut voir que l'adresse réelle de la commande est /usr/local/mysql/bin/mysql, mais un lien symbolique est créé vers le fichier vers le répertoire /usr/bin/, donc là il n'est pas nécessaire d'utiliser l'absolu. La commande peut être appelée via le chemin.

Créons nous-mêmes un lien logiciel de fichier pour voir si tel est le cas.

Créez d'abord un fichier soft.sh

vim soft

#!/bin/bash
echo 'study softlink'

# chmod u+x soft

puis créez un lien symbolique vers le fichier et voyez s'il est possible d'exécuter la commande directement

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

Créer un lien symbolique vers le répertoire

Tout d'abord, ce que nous devons noter est que lorsque crée un lien symbolique, le fichier ou le répertoire cible ne doit pas exister .

Ci-dessous, nous présentons un scénario très courant :

Les fichiers du site Web sont stockés dans le répertoire /www/wwwroot À mesure que le temps d'exécution du système devient de plus en plus mauvais, Le répertoire devient de plus en plus grand. Comme le répertoire se trouve dans la même partition que le répertoire racine, le répertoire racine est presque plein. L'autre répertoire de partition /data dispose encore de 99 Go d'espace restant. A ce stade, si vous ne souhaitez pas repartitionner, que devez-vous faire pour libérer la partition où se trouve le répertoire racine ?

Ci-dessous, nous utilisons des liens logiciels d'annuaire pour résoudre ce problème. Commencez par créer le répertoire wwwroot dans le répertoire /data, puis déplacez tous les fichiers du répertoire /www/wwwroot vers /data/wwwfile, puis supprimez le répertoire /www/wwwroot. Enfin, donnez au répertoire /data/wwwfile un lien symbolique vers /www/wwwroot

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

Maintenant, testons si le problème est vraiment résolu. L'utilisation de la partition racine est actuellement de 19 %, tandis que l'utilisation de la partition /data est de 9 %.

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

Nous créons un gros fichier de 2 Go dans le répertoire /www/wwwroot, puis voyons quelle capacité de partition a augmenté. La réponse que nous voulons est que l’utilisation de la partition /data est devenue plus élevée, alors que la partition racine n’a pas changé.

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

Comme vous pouvez le constater, la capacité disponible de la partition racine est toujours de 33 Go, mais la partition /data est passée de 458 Go à 456 Go, nous avons donc résolu le problème.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn