ホームページ  >  記事  >  運用・保守  >  Linux ファイルリンクとそのアプリケーションの紹介

Linux ファイルリンクとそのアプリケーションの紹介

齐天大圣
齐天大圣オリジナル
2020-06-20 11:13:492262ブラウズ

Linux にはファイルへのリンクが 2 種類あり、1 つはハード リンク、もう 1 つはソフト リンクです。今回はこの2つのリンクとその使い方を紹介します。

ハード リンク

まずハード リンクを見て、PHP の変数参照を使用してハード リンクを比較してみましょう。

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

$a はファイル、$b は $a ファイルへのハード リンクと考えることができます。現在の効果は、$a を変更しても $b を変更しても相手に影響を与えるというものです。

ファイルの 1 つが削除された場合、もう 1 つのファイルはまだ存在しますか?

unset($b);

$b ファイルが削除されても、$a ファイルはまだ存在します。

次に、上で述べたことと同じかどうかを確認してみましょう。ハード リンクを作成するコマンドは次のとおりです。

ln 源文件 链接文件

システムには現在 1.php ファイルがあります。次に、そのハード リンクを作成しましょう。

# ln 1.php 2.php

# cat 1.php

次に、2.php ファイルを変更して、1.php ファイルも変更されるかどうかを確認してみましょう。

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

# cat 1.php

2.php が変更されると、1.php ファイルも変更されることがわかります。次に、2.php ファイルを削除して、1.php ファイルがまだ存在するかどうかを確認してみましょう。

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

2.phpを削除しても、1.phpファイルが残っていることがわかります。

ハード リンクの機能は上で紹介されていますが、ハード リンクの使用に関する制限は次のとおりです:

  • ディレクトリをリンクすることはできません

  • ファイル システムをまたがるリンクは作成できない

上記 2 点の制限により、日常生活でハード リンクを使用する機会はほとんどありません。別の種類のリンクは次のとおりです。 -ソフトリンク、上記のような制限がないのでよく使っています! 。

ソフト リンク

一般に、ソフト リンクは Windows システムのデスクトップ ショートカットと比較されます。ソフト リンクを作成すると、ディレクトリの場所を探すことなくコマンドを簡単に実行できます。ファイル。また、ソフトリンクファイルは削除されますが、ソースファイルはまだ存在します。ただし、ソース ファイルが削除された場合、リンクされたファイルは無効になります。

ソフトリンクにはファイルとディレクトリの2種類があり、それぞれの機能を以下に紹介します。

ファイルへのソフト リンクの作成

mysql のインストール後に絶対パスを使用する必要がない理由について考えたことはありますか?実行するmysql。ここではソフトリンクが使用されます。

# 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

コマンドの実際のアドレスは /usr/local/mysql/bin/mysql であることがわかりますが、ファイルへのソフト リンクは /usr/bin/ ディレクトリに作成されているため、絶対パスを使用する必要はありません。コマンドはパス経由で呼び出すことができます。

これが当てはまるかどうかを確認するために、自分でファイルのソフト リンクを作成してみましょう。

まず、soft.sh

vim soft

#!/bin/bash
echo 'study softlink'

# chmod u+x soft
ファイルを作成します。

次に、ファイルへのソフト リンクを作成し、コマンドを直接実行できるかどうかを確認します。

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

ディレクトリへのソフト リンクを作成します

まず第一に、ソフト リンクを作成する場合、 ターゲットのファイルまたはディレクトリが存在してはならないという事実に注意する必要があります。存在する。

以下に、非常に一般的なシナリオを紹介します:

Web サイトのファイルは /www/wwwroot ディレクトリに保存されており、システムの実行時間がますます悪化するため、ディレクトリはますます大きくなり、ルート ディレクトリと同じパーティションにあるため、ルート ディレクトリはほぼいっぱいになります。もう一方のパーティション ディレクトリ /data には、まだ 99G のスペースが残っています。この時点で、パーティションを再分割したくない場合、ルート ディレクトリが配置されているパーティションを解放するにはどうすればよいでしょうか?

以下では、ディレクトリ ソフト リンクを使用してこの問題を解決します。まず、/data ディレクトリに wwwroot ディレクトリを作成し、次に /www/wwwroot ディレクトリ内のすべてのファイルを /data/wwwfile に移動して、/www/wwwroot ディレクトリを削除します。最後に、/data/wwwfile ディレクトリに /www/wwwroot

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

へのソフト リンクを与えます。それでは、問題が本当に解決したかどうかをテストしてみましょう。現在、ルート パーティションの使用率は 19% ですが、/data パーティションの使用率は 9% です。

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

/www/wwwroot ディレクトリに 2G の大きなファイルを作成し、どのパーティションの容量が増加したかを確認します。私たちが求める答えは、ルート パーティションは変わっていないのに、/data パーティションの使用量が増加しているということです。

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

ご覧のとおり、ルート パーティションの空き容量は 33G のままですが、/data パーティションは 458G から 456G に変更されているため、問題は解決されました。

以上がLinux ファイルリンクとそのアプリケーションの紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。