Archive for category Linux

du:ディスク使用量を調べるコマンド

/home/ 以下、各アカウントのディスク容量を調べたい

$ du -h /home --max-depth=1
オプション 説明
-a, –all ディレクトリだけでなく、全てのフィアルについての容量を表示
-b, –bytes デフォルトのブロックサイズを無視し、バイト単位でサイズを表示する
-c, –total 全ての引数について使用量表示の処理をした後、全ての引数の使用量の統計を表示する
-h, –human-readable それぞれのサイズに例えば、メガバイトならMのようなサイズ文字を付加する
-k, –kilobytes サイズをキロバイト単位で表示する
-l, –count-links あるファイルが(ハードリンクとして)既に集計されている場合を含め全てのファイルの使用量を集計する
-m, –megabytes メガバイト(1,048,576バイト)単位でサイズを表示する
-s, –summarize それぞれの引数について、総計のみを表示する
-x, –one-file-system 引数で指定されたファイルのあるファイルシステムとは異なるファイルシステム上にあるディレクトリを集計に含めない
-D, –dereference-args コマンドライン引数で指定したシンボリックリンクをたどる
-H, –si それぞれのサイズに例えば、メガバイトならMのようなサイズ文字を付加する
-L, –dereference シンボリックリンクをたどる
-S, –separate-dirs サブディレクトリの使用量を含めずに個々のディレクトリの使用量を分けて表示する
-XFILE, –exclude-from=FILE 除外するためのパターンをFILEから1行ずつ取り込む
–block-size=SIZE 環境変数の値を無視し、ブロックサイズをSIZEに設定する
–exclude=PATTERN 再帰的に集計する際、PATTERNにマッチする名前のサブディレクトリやファイルを除外する
–max-depth=DEPTH 階層のルートから深さレベルが最大DEPTHまでにある各ディレクトリのディスク容量の合計を表示する
–help 標準出力に使用方法を出力する
–version 標準出力にバージョン情報を出力する

svscan の覚書

svscan で起動したサービスの操作方法について

-u サービスを開始します。既に稼動中の場合は再起動します。
-d サービスを停止します。TERM -> CONT
-o サービスを開始します。既に稼動中の場合はそのままです。
-p サービスに STOP シグナルを送ります。
-c サービスに CONT シグナルを送ります。
-h サービスに HUP シグナルを送ります。
-a サービスに ALRM シグナルを送ります。
-i サービスに INT シグナルを送ります。
-t サービスに TERM シグナルを送ります。
-k サービスに KILL シグナルを送ります。
-x サービスがダウンしたらすぐに supervise を終了します。

sed コマンド(文字列置換)

今更なんですけど、便利だなぁーと再認識したので

$ find . -name '*.html' | xargs grep -l 'hogehoge' | xargs sed -i.bak 's/hogehoge/fugafuga/g'

1)拡張子が「.html」
2)「hogehoge」という文字列を含んでいる
3)「hogehoge」を「fugafuga」に置換する

ちなみに -i.bak というオプションは [元のファイル名].bak というバックアップファイルまで作ってくれます。

CentOS5のPHPをアップデートする

PHPでDateTimeクラスを利用するには、どうもPHP5.2以降でないとだめらしいので
PHP5.2.6にアップデートしてみる。(CentOS5だと初期はPHP5.1.6なのかな)

RPM-GPG-KEYをインストール

rpm --import http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka

リポジトリ参照ファイルを作成

#vi /etc/yum.repos.d/utterramblings.repo

参照ファイルの内容

[utterramblings]
name = Jason's Utter Ramblings Repo
baseurl = http://www.jasonlitka.com/media/EL$releasever/$basearch/
enabled = 0  ・・・常に参照するわけじゃないので0にしてます。
gpgcheck = 1
gpgkey=http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka

yumでPHPをアップデート

# yum --enablerepo=utterramblings update php

うまくいけばこの手順で更新されるはずです。

alias:エイリアスの作成

エイリアス(alias)は、コマンド本来の名前とは別の名前を付けることができます。

$ alias la='ls -alh'

のように実行すると、「la」というエイリアスを設定することができます。
引数を指定せずに実行した場合は現在エイリアスに設定されている内容が表示されます。

$ alias

alias l.='ls -d .* --color=tty'
alias ll='ls -l --color=tty'
alias ls='ls --color=tty'
alias vi='vim'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

毎回エイリアス設定するのが面倒な場合は「.bashrc」に設定することをオススメします。
例えば、CakePHPのコンソールシェルをcakeというエイリアスで設定する場合

$ vi .bashrc

# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
  . /etc/bashrc
fi

# User specific aliases and functions
alias la='ls -alh --color=tty'
alias cake='[[CakePHP Install Path]]/cake/console/cake' (※追加※)

のように編集して

$ source .bashrc

で反映、これで次回ログイン時にも既にエイリアスが設定されています。

usermod:ユーザ属性を変更したい

コマンド

# usermod [ -c comment ] [ -d home_dir [ -m ] ] [ -e expire_date ] [ -u user_id ] [ -f inactive_time ] [ -G group[,...] ] [ -l login_name ] [ -s shell ] account

オプション

-c comment        ユーザアカウントに対するコメント
-d home_dir       ホームディレクトリを変更(-mを指定すると、以前のホームディレクトリを移動)
-e expire_date    このアカウントの有効期限を指定(形式はmm/dd/yyで表す)
-f inactive_time  有効期限を越えた場合、使用不可能になるまでの日数を指定(-1にするとこの機能を不能にできます)
-G group          このアカウントが所属するグループを指定(カンマで区切りで複数指定可)
-l login_name     ユーザアカウント名を変更する。但し、ユーザアカウント名のみ変更するだけで、その他の情報は変更しません
-u home_dir       ユーザIDを変更
account           ユーザーアカウントを記述

ユーザアカウントの情報を変更することができます。
アカウント名を変更する際はアカウントを削除し新規に作成することをお薦めします。

useradd:ユーザを追加する

コマンド

# useradd [-c comment] [-d homedir] [-e expiredate] [-G group[,...]] account 

オプション

-c comment      ユーザアカウントに対するコメント
-d homedir      ホームディレクトリを指定する
-e expiredate   このアカウントの有効期限を指定(形式はmm/dd/yyで表す)
-G group        このアカウントが所属するグループを指定(カンマで区切ることで複数指定可)
account         ユーザーアカウントを指定

サーバログインできるユーザーアカウントを作成します。
ホームディレクトリを指定しない場合は、「/home/account」が作成されます。
※スーパーユーザーのみ実行可能

userdel:ユーザアカウントを削除する

コマンド

# userdel -r account

オプション

-r      :ホームディレクトリも同時に削除
account :ユーザーアカウントを指定

登録されているユーザーアカウントを削除します。
-r オプションを指定することでそのユーザーのホームディレクトリも同時に削除します。