Linuxサーバー構築・設定

ディレクトリ内のファイルを一括削除したいのに、

bash: /bin/rm: Argument list too long

と怒られる場合があります。ファイル数が多すぎて削除できない!というエラーです。そういうときには以下。

echo *.html | xargs rm

.htmlのファイルを一括で削除したい時の例です。

Linuxサーバー構築・設定

apacheを再起動しようとするとプロセスが残ってしまい再起動できない場合があります。例えば以下のようなエラーのときです。

 [crit] (28)No space left on device: mod_rewrite: could not create rewrite_log_lock
 Configuration Failed

数個のプロセスなら1つづつkillしていけばよいのですが、数十となると手作業では厳しいです。そういうときには、

ipcs -s | grep apache | awk ' { print $2 } ' | xargs -i ipcrm -s {}

とやると、apacheなプロセスがすべてkillされます。

Linuxサーバー構築・設定

ps auxを実行して今稼働しているプロセスを調べますが、その表示順を変える方法です。

CPU使用率昇順

ps aux | sort -nk 3

メモリ使用量昇順

ps aux | sort -nk 4

プロセスの親子関係をツリー表示

順番とは関係ないのですが、プロセスの親子関係を知りたいときがあります。

ps -auxf

を実行すると、以下のようにツリー構造で表示されます。

ps -auxf
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         2  0.0  0.0      0     0 ?        S    11月29   0:01 [kthreadd]
root         4  0.0  0.0      0     0 ?        S<   11月29   0:00  \_ [kworker/0:0H]
root         6  0.0  0.0      0     0 ?        S    11月29   0:21  \_ [ksoftirqd/0]
root         7  0.0  0.0      0     0 ?        S    11月29   0:01  \_ [migration/0]
root         8  0.0  0.0      0     0 ?        S    11月29   0:00  \_ [rcu_bh]
root         9  0.0  0.0      0     0 ?        S    11月29   7:25  \_ [rcu_sched]
root        10  0.0  0.0      0     0 ?        S<   11月29   0:00  \_ [lru-add-drain]

Linuxサーバー構築・設定

各種ログの確認作業は本当に骨が折れます。そういう時に特定の文字列が含まれた行のみを抽出することができると、問題のあるログを見つけやすかったりします。

sed -n '/抽出したい文字列/p' ファイル名 > 出力するファイル名

Linuxサーバー構築・設定

yumでアップデートした後に、サーバーを再起動すべきか迷うことがあります。kernelのアップデートがあれば再起動は必須なのですが、それ以外でも再起動が必要な場合がある可能性があります。

そういうときは、

needs-restarting -r

再起動が必要ではない時

再起動が必要ではないときには以下のように結果が帰ってきます。

Reboot is probably not necessary.

再起動が必要な時

再起動が必要なときは以下のように結果が帰ってきます。

Core libraries or services have been updated:
  kernel -> 3.10.0-1160.80.1.el7

Reboot is required to ensure that your system benefits from these updates.

More information:
https://access.redhat.com/solutions/27943

Core libraries or services have been updated:
の下が再起動が必要な理由が書かれています。

こういうときにはサーバーを再起動します。

Linuxサーバー構築・設定

例えば、365日以内に生成されたJPG画像ファイルをコピーしたい時は以下。

/usr/bin/find コピー元ディレクトリ -mtime +365 -name "*.jpg" | xargs mv --target-directory=コピー先ディレクトリ

WordPress

kusanagiで運用しているWordPressのドメイン(URL)を変更したくなる場合はあります。開発用のドメインで構築していたけど、本番ドメインに変更したいときなどによく使います。

kusanagi setting --fqdn fqdn名 プロファイル名

WordPress

kuanagiでWordPressのプロファイルを作成し、後からSSL化したいときがあります。そういうときには以下。

kusanagi ssl --email メールアドレス プロファイル名

WordPress

プロファイルの追加

kusanagi provision --WordPress プロファイル名

上記で追加することができる。

プロファイルの削除

kusanagi remove プロファイル名