Linux:サーバ内のファイルやディレクトリを検索する

Linuxサーバでファイルディレクトリの名前で検索したい場合があります。
場所が分からずにサーバ内を探すのは大変ですよね。

findコマンドを使用すれば簡単に検索することができます。
下記にLinuxサーバでfindコマンドを使用してサーバ内のファイルディレクトリ検索する方法をメモします。


findコマンド

指定した検索条件でファイルやディレクトリを検索します。

find [検索先] [検索条件] [アクション]

ファイル・ディレクトリを検索

・ファイルを検索

「hoge.html」というファイルを検索する場合、下記のように記述します。

find / -name hoge.html

アスタリスク(*)を指定して、ワイルドカードで検索することも可能です。

find / -name hoge.*

出力したファイルの詳細を表示する場合は「-ls」を付けます。

find / -name hoge.* -ls

・ディレクトリを検索

「hoge」というディレクトリを検索する場合、下記のように記述します。

find / -name hoge -type d

「-type d」でディレクトリを検索するように指定してます。
ファイルの場合は「-type f」でシンボリックリンクの場合は「-type l」で指定します。


Linux:ファイル、ディレクトリの圧縮と解凍

Linuxサーバのデータを圧縮解凍する方法をメモします。

サーバ移行や大量のデータを取得したい時など、様々な場面で使えます。
他にもデータのバックアップなどにも必要になってくると思います。

データ圧縮解凍する時はtarコマンドを使用します。


データの圧縮

SSHにログインし、圧縮するデータの場所に移動します。

# cd /var/www/html/
# ls
hoge
# 

「hoge」ディレクトリを圧縮する場合、下記のように記述します。
実行すると指定したファイルが圧縮されます。

# tar zcvf hoge.tar.gz hoge
hoge/
hoge/test.txt
hoge/index.html
hoge/test.jpg
hoge/test.gif
# ls
hoge  hoge.tar.gz
# 

データの解凍

SSHにログインし、解凍するデータの場所に移動します。

# cd /var/www/html/
# ls
hoge.tar.gz
# 

「hoge.tar.gz」を解凍する場合、下記のように記述します。
実行すると指定したファイルが解凍されます。

# gzip -dc hoge.tar.gz | tar xvf -
hoge/
hoge/test.txt
hoge/index.html
hoge/test.jpg
hoge/test.gif
# ls
hoge  hoge.tar.gz
# 

Linux:DNS設定でサブドメインをワイルドカードで指定

一つのドメインに対して複数のサブドメインを設定したい場合があります。
DNSの設定で「*(アスタリスク)」を使用すればワイルドカードで指定することが可能です。

サブドメインを設定する際に毎回ゾーンファイルを変更しなくてOKなので、頻繁にサブドメインを設定する場合はワイルドカードを使用した方が楽に設定できると思います。

下記にDNSの設定でゾーンファイルサブドメインの指定をワイルドカードを使用した時の記述方法をメモします。


サブドメインをワイルドカードで指定する

$TTL    86400
@       IN      SOA     ns1.hoge.com.  root.hoge.com.(
2012101001 ; Serial
28800      ; Refresh
14400      ; Retry
3600000    ; Expire
86400 )    ; Minimum
        IN NS   ns1.hoge.com.
        IN NS   ns2.hoge.com.
        IN MX 10 hoge.com.
@       IN A    xxx.xxx.xxx.xxx
www     IN A    xxx.xxx.xxx.xxx
ns1     IN A    xxx.xxx.xxx.xxx
ns2     IN A    xxx.xxx.xxx.xxx
*       IN A    xxx.xxx.xxx.xxx

最後の行で*で指定しています。

*       IN A    xxx.xxx.xxx.xxx

ワイルドカードで指定した場合、指定がない全てのサブドメインはIPアドレスで指定したサーバにつながります。
別のサーバにつなげる場合は個別に設定する必要があります。

test    IN A    aaa.aaa.aaa.aaa
blog    IN A    yyy.yyy.yyy.yyy
*       IN A    xxx.xxx.xxx.xxx

「test.hoge.com」「blog.hoge.com」はそれぞれ別のサーバにつないで、それ以外はワイルドカードで指定したサーバに接続します。


Linux:出力結果やテキストをファイルに書き出す方法

Linuxで操作している時に各コマンドで出力した内容や文字列等のテキストをファイルに書き出したい場合があります。
リダイレクションを使用すれば、ファイルに書き込むことができます。
今回はLinuxでリダイレクションを使用して、出力結果やテキストをファイルに書き出す方法をメモします。


リダイレクションとは

入力元や出力先を変更する機能です。
出力結果をディスプレイに出力するのではなく、ファイルに書き込む場合などに利用されます。
「>」、「>>」を使用します。


ファイルに書き出す方法

・テキストをファイルに書き出す場合

# echo 'test' > hoge.txt
# cat hoge.txt
test

・追記で書き込みを行う場合

# echo 'hoge' >> hoge.txt
# cat hoge.txt
test
hoge

・コマンドで出力した内容をファイルに書き出す場合

# ls
hoge.txt  hoge2.txt  list.txt
# ls > hoge2.txt
# cat hoge2.txt
hoge.txt
hoge2.txt
list.txt

・ファイルの中身を空にする場合

# echo '' > hoge2.txt
# cat hoge2.txt


Linux:サーバ内のディレクトリの容量を調べる(du)

Linuxサーバ内でそれぞれのファイル・ディレクトリの容量を調べたい場合があります。
サーバの容量を削減したい場合などに、どのファイル・ディレクトリが容量が大きいかを調べることができれば便利です。
duコマンドを使用すれば、ディレクトリ容量を確認することができます。
今回はサーバ内のディレクトリの容量をサイズの大きい順でソートして表示・出力する方法を記載します。

duコマンド

指定したファイル・ディレクトリの容量を出力します。
ファイル・ディレクトリを指定しない場合はカレントディレクトリの容量を出力します。
ディレクトリを指定した場合は、サブディレクトリの容量も出力します。

du [オプション] [ファイル・ディレクトリ]

sortコマンド

テキストファイルの行を並び替えます。
指定したオプションでソートできます。

sort [オプション] [ファイル]

ディレクトリの容量を調べる

容量を調べたいディレクトリに移動します。
duコマンドを使用して、カレントディレクトリ以下のディレクトリの容量をサイズの大きい順でソートして表示します。
※容量の単位をMバイトで表示し、パイプを使用してソート順を変更。

# du -m | sort -rn
40      .
27      ./wp-content
16      ./wp-content/plugins
8       ./wp-includes
6       ./wp-content/uploads
6       ./wp-admin
(省略)

ファイルに出力する場合は下記のように指定します。
※hoge.txtに出力結果を書き込む。

# du -m | sort -rn > hoge.txt

hoge.txtファイルに出力結果が書き込まれます。

40      .
27      ./wp-content
16      ./wp-content/plugins
8       ./wp-includes
6       ./wp-content/uploads
6       ./wp-admin
(省略)