Hatena::Groupmylinux

今日も元気にlinux

2008-11-23

[][][]tmpfsってなんですか? 00:57 tmpfsってなんですか? - 今日も元気にlinux を含むブックマーク はてなブックマーク - tmpfsってなんですか? - 今日も元気にlinux tmpfsってなんですか? - 今日も元気にlinux のブックマークコメント

デバイスの話に関連して、tmpfsという面白い機能を勉強。

tmpfsというのは物理メモリ上に一定量のブロックファイルを作成し(デフォルトで物理メモリの半分)、それを任意のディレクトリマウントしてRAMディスクとして使用できる機能である。

例えば、メモリを3GB積んでるが普段はそんなに使わない。じゃあ、2GBをtmpfsとして/home/user01/chash/とかにマウントして、そこにキャッシュファイルや作業用ファイルなどを置こう。PCを落とすとデータが消えるので必要なら物理ディスク上にコピーしよう、って感じ。

tmpfsが/dev/shmをマウントしている件 - サーバー技術メモ

RAMディスクを作成しHDDへのアクセスを抑制する - ちりあくた

tmpfsってのはファイル名やディレクトリ名ではなくNTFSやFAT32のようなファイルシステム=「機能」として認識するのが正しい。

デフォルト設定

上記で書いたとおり、デフォルトでも物理メモリの半分は/dev/shmにtmpfsとして割り振られる。まぁ/dev以下にわざわざ作業ファイルを保管するのも不自然なので、/dev/shmへのマウントを解除して/tmpやら/home/user01/tmpやら/var/logやらにマウントし直す方が分かりやすいと思われる。それには/etc/fstabを編集し、PC起動時に自動的にtmpfsが働くようにしてやればよい。

tmpfs使うと物理メモリ削るの?

物理メモリの余りを利用して高速のRAMディスクを作る機能なので削ります。ただし削られるのはtmpfsとしてマウントされたディレクトリにファイルを置いたタイミングなので、マウントするだけならタダ。

tmpfs は本当に容量が動的なのか - naoyaのはてなダイアリー

CentOSUbuntuの設定の違い

CentOSは/etc/fstabにtmpfsをマウントする一文が書かれ、/etc/default/tmpfsに書かれている分だけ/dev/shmにマウントするみたいです。まぁデフォルト設定消さなくてもそこにファイルを置かない限りマウントしてないも同然なので気にしなくても問題ないと思いますが。

[][][][]killとkillallについて 21:50 killとkillallについて - 今日も元気にlinux を含むブックマーク はてなブックマーク - killとkillallについて - 今日も元気にlinux killとkillallについて - 今日も元気にlinux のブックマークコメント

killは引数としてプロセスIDを取り、killallは引数としてプロセス名やデーモンの名前を取る。killは1つのプロセスのみを殺すが、killallは名前どおり合致したプロセス名全てを殺す。

kill and killall

例えばテンポラリの対応でPC起動時に起動するプロセスをログオンしたタイミングで殺したい。こういう場合、殺すプロセス名は分かっていてもPIDは毎回変わるので指定できない。こういう時はkillallを使う。

引数がPIDか名前かでコマンド名が違うのが使い辛い。WINDOWSみたいにコマンド同じでオプションで変更できればいいのに。

[][][]sambaについて(プロセス管理) 21:50 sambaについて(プロセス管理) - 今日も元気にlinux を含むブックマーク はてなブックマーク - sambaについて(プロセス管理) - 今日も元気にlinux sambaについて(プロセス管理) - 今日も元気にlinux のブックマークコメント

sambaとはLINUXのファイル共有プログラムである。windowsで言うところのsmbってところかな…。ありゃプロトコルだけど。

基礎から学ぶWindowsネットワーク:第20回 ファイル共有プロトコルSMB/CIFS(その1) (1/3) - @IT

LINUXsambaの実行プログラムはnmbd(NetBIOSのネームサーバーデーモン)とsmbd(sambaサーバデーモン)である。

# whereis nmbd
nmbd: /usr/sbin/nmbd /usr/share/man/man8/nmbd.8.gz
# whereis smbd
smbd: /usr/sbin/smbd /usr/share/man/man8/smbd.8.gz

こいつらを常時起動でアクセス待ち受けでも良いのだが、ポートを監視してアクセスがあったときだけサービスを起動する、インターネット系スーパーサーバ"xinetd"を使うとメモリが節約できる。

xinetdの使い方

1./etc/servicesファイルの設定

これはxinetd用インデックスファイルみたいなもの。どのポートがどのサービスを受け持っているか定義する。といってもsambaインストール時に追記されている事がほとんどなので編集の必要はないことが多い。

netbios-ns 137/udp
netbios-ssn 139/tcp

2./etc/xinetd.d以下にファイル作成

先ほどのインデックスファイルから参照されるファイルを作成。

$ cat /etc/xinetd.d/netbios-ns
service netbios-ns
{
        disable = no
        socket_type = dgram
        protocol = udp
        wait = yes
        user = root
        server = /usr/sbin/nmbd
        only_from = 192.168.0
}

$ cat /etc/xinetd.d/netbios-ssn
service netbios-ssn
{
        disable = no
        socket_type = stream
        protocol = tcp
        wait = no
        user = root
        server = /usr/sbin/smbd
        only_from = 192.168.0
}

3.xinetdの再起動

スーパーサーバ再起動

/etc/init.d/xinetd restart

ちなみにこの時点では普通に起動したsambaプロセスが残ったままである。ので、killするかPC再起動。何もしていないときはsambaプロセスは起動していないが…

$ ps -aux | grep smb
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.7/FAQ
user01   3322  0.0  0.2   4976   740 pts/1    R+   13:17   0:00 grep smb

手元のwindowsPCからアクセスに行くとsmbdプロセスが起動される。

[keisuke@eeco init.d]$ ps -aux | grep smb
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.7/FAQ
user01   3354  2.1  1.3  14872  4444 ?        Ss   13:19   0:00 smbd
user01   3359  0.0  0.2   4980   752 pts/1    R+   13:19   0:00 grep smb

余談:chkconfig smb offするとどうなるか?

普通にxinetdで機能します。chkconfigで操作できるのは起動時にどうするかの設定であって、起動してからxinetd経由で起動するsmbにはノータッチ。


[]忘れっぽいのでもう一度各種設定確認ファイル 21:50 忘れっぽいのでもう一度各種設定確認ファイル - 今日も元気にlinux を含むブックマーク はてなブックマーク - 忘れっぽいのでもう一度各種設定確認ファイル - 今日も元気にlinux 忘れっぽいのでもう一度各種設定確認ファイル - 今日も元気にlinux のブックマークコメント

CPU/ディスク情報確認 /proc/cpuinfo /proc/devices

ディスク容量確認 df -h du-sm

ネットワーク全般 /etc/sysconfig/network

IPアドレス設定 /etc/sysconfig/network-scripts

サービス設定確認(各ランレベルでの設定) chkconfig --list

サービス設定確認(現在の状況) service --status-all

サービス設定 chkconfig [サービス名] on/off/reset

サービスONOFF service [サービス名] start/stop/restart

[][]sambaの設定(ユーザー・共有管理) 21:50 sambaの設定(ユーザー・共有管理) - 今日も元気にlinux を含むブックマーク はてなブックマーク - sambaの設定(ユーザー・共有管理) - 今日も元気にlinux sambaの設定(ユーザー・共有管理) - 今日も元気にlinux のブックマークコメント

sambaを使うにはOSのユーザーと別途ユーザー登録をする必要がある。コマンドは"smbpasswd"を使う。passwdのsamba版みたいなもん。ここでWindows(というかアクセス元PC)と同じユーザー名・パスワードを設定すると、samba共有にアクセスするときいちいちユーザー名・パスワードを入力しなくて良いので便利。

samba自体の詳しい設定は/etc/samba/smb.confをいじる。まぁここらへんは詳しく追い出すときりがないので省略。文法ミスがないかのチェックにtestparmを使う。

# testparm
Load smb config files from /etc/samba/smb.conf
Processing section "[homes]"
Processing section "[printers]"
Processing section "[public]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions

LinuxからWindowsの共有ファイルをマウント

Windows上のファイルにLinuxからアクセスするには

Windows上のファイルにLinuxからアクセスするには(mount.cifs編) − @IT

LinuxからWindows共有がかかっているディレクトリマウントするにはsmbmountかcifsを使用する。ちなみにファイルシステム"smbfs"としてマウントする時は、smbmountコマンドとmount -t smbfsの2つが使えるが、cifsはmountコマンドのみである。といってもmountに統一してくれた方がやりやすくていい。

smbmount //192.168.1.101/share/ /home/user01/tmp
mount -t smbfs (-o user=user01) //192.168.1.101/share /home/user01/tmp
mount -t cifs (-o user=user01) //192.168.1.101/share /home/user01/tmp

※括弧でくくってあるが、userは実質必須。

CentOS5ではsmbfsが廃止されcifsを使うようになっているので、smbfsは今後なくなっていくんじゃないかなぁ。

SMBとCIFSの違いはこちら。

基礎から学ぶWindowsネットワーク:第20回 ファイル共有プロトコルSMB/CIFS(その1) (1/3) - @IT

SMBの方がNetBIOSを使用した比較的古い共有プロトコル。CIFSはTCP/IPオンリーの新しめの共有プロトコル

ちなみにnfs

LINUXの伝統的なファイル共有にNFSというのがあるのだが、さまざまなOSが混在する今では今ではあまり使われなくなったらしい。ただし試験には出る。

[][][][][]ユーザー管理 21:50 ユーザー管理 - 今日も元気にlinux を含むブックマーク はてなブックマーク - ユーザー管理 - 今日も元気にlinux ユーザー管理 - 今日も元気にlinux のブックマークコメント

[][][]シェルの変更 21:50 シェルの変更 - 今日も元気にlinux を含むブックマーク はてなブックマーク - シェルの変更 - 今日も元気にlinux シェルの変更 - 今日も元気にlinux のブックマークコメント

chshコマンドあるいはusermod -sでシェルの変更ができる。

chsh ←自分のログインシェルを変更
chsh -l ←ログインシェルに指定可能なリストを確認(Redhat系)

指定可能なシェル一覧は/etc/shellsファイルに記載してある。これ以外のシェルも指定可能だが、パスを待ちがうと次回ログイン時にシェルを起動できなくなるので注意。


[][]Ubunturootについて 21:50 Ubuntuのrootについて - 今日も元気にlinux を含むブックマーク はてなブックマーク - Ubuntuのrootについて - 今日も元気にlinux Ubuntuのrootについて - 今日も元気にlinux のブックマークコメント

Ubuntuでは普通にsu - としてrootになろうとしても無理。なぜならrootパスワードが設定されておらずログインできないから。su -と同じ事をするにはsudo -iでOK。

sudoの設定とか - 今日も元気にlinux - mylinuxグループ

Ubuntu には root のパスワードがない。 : tnomuraのブログ

ところでUbuntuでvisudoするとエディタemacs風味なのが使いにくいんだが、なんとかならんものか…。

[][]bashの動きについて 21:50 bashの動きについて - 今日も元気にlinux を含むブックマーク はてなブックマーク - bashの動きについて - 今日も元気にlinux bashの動きについて - 今日も元気にlinux のブックマークコメント

ログイン字は以下の順番でbashの定義ファイルが読み込まれる。

  1. /etc/profile
  2. ~/.bash_profile # シェルオプションを指定
  3. ~/.bashrc # エイリアスやユーザー関数を指定
  4. /etc/bashrc

この4つはどれもほどほどに重要。

シェルオプションについて

環境変数bash内限定版。

set -o # オプションを一覧表示
set -o オプション # オプションを有効にする
set +o オプション # オプションを無効にする

set -o ignoreeof

→Ctrl+Dでのログアウトができなくなる。

set -o xtrace(set -xも同等)

エイリアスで実行しても、実コマンドが表示される。

ユーザー関数について

~/.bashrc内にfunctionを記載し、シェルで使えるようにする。

function lm ()
{
  ls -l $* | more
}

vbモジュールを最初に読み込んで、ターミナル内で環境変数として設定。そのセッション終了まで使えるようにするのと同じ。

デフォルトの定義ファイルについて

/etc/skelというディレクトリに存在する。新しくユーザーを作成した際にはここのファイルが新しいユーザーのホームディレクトリにコピーされる。まぁWindowsでいうDocuments and Settings\All users以下のファイルみたいなもの。

ufjjkcagniufjjkcagni2014/06/24 10:57ipdyanzmjovy, <a href="http://www.kmiaejnjsa.com/">shnnpeuoli</a> , [url=http://www.zrvjpvlmxr.com/]btyvgtylvw[/url], http://www.pgbhbonjyn.com/ shnnpeuoli