linuxの小技

かゆいところに届きそうで届かない場合につかえそうな小技をまとめてみようかと思う。
役に立つかたたないかは不明(w

ネットワークを100M/FULL固定設定

/etc/sysconfig/network-scripts/ifcfg-ethxファイルを開く

以下の1行を追加

ETHTOOL_OPTS="speed 100 duplex full autoneg off"

ネットワークを再起動

service network restart

hosts.allowやdenyでDDNSドメインを制御する

ipから逆引きを行う関係でDDNSのドメインをそのままhosts.allowやhosts.denyに突っ込んでもちゃんと動いてくれない。
当たり前だけど(^^;
簡単な方法で正引きだけで制御する方法がないかとGoogle先生で調べると以下のサイトがHITした。

http://d.hatena.ne.jp/kazuhooku/20080502/1209704193

IPが書かれたファイルを読むことが可能なんだね。
このサイトではCRONでファイルに落としてるけど、『直接シェルスクリプト実行したらいいんじゃないの?』という神の声が聞こえてきたので試してみた。

まずIP取得用のスクリプトを用意する。(/etc/ddns_ip.shとでもする)

 #!/bin/sh
 /usr/bin/host ドメイン名 | awk '/has address/ {print $4}'

保存して終了
パーミッションを適切に設定して実行できるようにしといてね

SSHの制限を行うのであれば以下のようにhosts.allowとdenyを編集します

・hosts.allow
 SSHD : /etc/ddns_ip.sh

・hosts.deny
 SSHD : ALL

指定したドメインから正常に接続が出来るか確認します。
接続出来なかった場合の事を考えて設定した時のSSHセッションは切らずに残しておくのが吉(w

特定ディレクトリのファイルを更新日付で消す方法

なんちゃってプログラマがPHPでプログラム中にSESSIONを利用したのだが、/var/lib/php/session/(php.iniで指定可能)に保存されるsess_から始まるセッションファイルが削除されなくてどうしたものかと考えた挙句にCRONで一定時間毎に消すしか思いつきませんでした(^^;

すぐに忘れると思うのでメモ
find /var/lib/php/session/ -name “sess_*” -exec rm {} \;

swap領域を増やそう!!

swap領域を増やす事はインストールの時にちゃんと考えてたら大丈夫なんだけど。。。
どうしても増やしたいって場合あるよね(w
そんな時は以下の手順で増やす事が可能。

# dd if=/dev/zero of=/var/swapfile bs=1024 count=2000000

上記の例だと/var/swapfileに2GBのSWAPファイルの枠を作成するって事だね。
次にSWAPFILEをつくる

# mkswap -v1 /var/swapfile

これでSWAP領域は確保完了。

じゃあ、SWAP領域としてマウントしてみよう

# swapon /var/swapfile

ちゃんとSWAP領域が増えてるかfreeコマンドなどで確認

アンマウントする時は

# swapoff /var/swapfile


SWAP領域は全部で8つまで持つことができるよ(^^)

毎回手動でマウントするのが面倒な時は・・・

/etc/rc.d/rc.localに以下のコマンドを追加

/sbin/swapon /var/swapfile

もしくはfstabを編集する

vi /etc/fstab

/swapfile	swap	swap	defaults	0 0


.htaccessで一部のディレクトリのみBasic認証を外したい場合

認証させたくないディレクトリに.htaccessを設置して以下の3行を書くだけでおっけー!

Satisfy any
order allow,deny
allow from all


isoファイルのmount

いつも忘れて他のサイトを探すので書いておこう(^^;

mount -t iso9660 -o loop マウントするisoファイル マウントポイント

isoファイルの作り方

そもそもisoファイルってどうやったら作れるのって方は読んでくださいね

CD/DVDをドライブに挿入したらmount不要で以下のコマンドを実行

dd if=/dev/cdrom of=ファイル名.iso

ほら、出来たでしょ(^^)

パスワード付zipファイル

zip -P パスワード -e ZIPファイル名 圧縮するファイルやフォルダ

ファイルの文字コード確認

kccコマンドに-cオプションをつけて実行するとファイルの文字コードがわかる

$ kcc -c ファイル名
ファイル名:       EUC

実行プロセスの確認方法

psコマンドのオプションはかなりあるので必要に応じて組み合わせを変えてやらないと思ったように結果が表示されない。

実行中のプロセス一覧にオプションも表示させたい場合

# ps -axf | more

■実行結果
  PID TTY      STAT   TIME COMMAND
    1 ?        Ss     0:11 init [3]
    2 ?        S<     0:00 [migration/0]
    3 ?        SN     0:00 [ksoftirqd/0]
    4 ?        S<     0:00 [watchdog/0]
    5 ?        S<     0:00 [events/0]
    6 ?        S<     0:00 [khelper]
    7 ?        S<     0:00 [kthread]

(以下続く)

実行中のプロセスのCPUやメモリの使用率なども表示したい場合

# ps auz | more

■実行結果
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0   2068   612 ?        Ss   Aug17   0:11 init [3]
root         2  0.0  0.0      0     0 ?        S<   Aug17   0:00 [migration/0]
root         3  0.0  0.0      0     0 ?        SN   Aug17   0:00 [ksoftirqd/0]
root         4  0.0  0.0      0     0 ?        S<   Aug17   0:00 [watchdog/0]
root         5  0.0  0.0      0     0 ?        S<   Aug17   0:00 [events/0]
root         6  0.0  0.0      0     0 ?        S<   Aug17   0:00 [khelper]
root         7  0.0  0.0      0     0 ?        S<   Aug17   0:00 [kthread]
root        10  0.0  0.0      0     0 ?        S<   Aug17   0:15 [kblockd/0]
root        11  0.0  0.0      0     0 ?        S<   Aug17   0:00 [kacpid]
root        78  0.0  0.0      0     0 ?        S<   Aug17   0:00 [cqueue/0]

(以下続く)

ポート番号から実行ユーザとプロセスを表示する

fuserコマンドを利用する

# fuser -vn tcp 80

■実行結果
                     USER        PID ACCESS COMMAND
80/tcp:              apache      942 F.... httpd
                     apache      943 F.... httpd
                     apache      944 F.... httpd
                     apache      945 F.... httpd
                     apache      946 F.... httpd
                     apache      947 F.... httpd
                     apache      948 F.... httpd
                     apache      949 F.... httpd
                     root       2007 F.... httpd

Basic認証用ユーザを作成

通常は

# htpasswd -c 認証用ファイル アカウント

とコマンドを実行するとパスワード確認があって、正常に入力する事でパスワードファイルが完成する。

しかし、シェルスクリプトなどから実行の場合は出来ればパスワード入力を遠慮した。

そこで、以下のオプションを試してみよう

# htpasswd -nb アカウント名 パスワード

アカウントとパスワードが表示されたはずだが・・・どうだろうか?

この標準出力をhtpasswdに挿し込めば以上終了。

いや~簡単だったね。

linux/memo.txt · 最終更新: 2011/03/04 01:51 by miyako
CC Attribution-Noncommercial-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0