俺のひとり言

Icon

一人外人の世界観、価値観、恋愛観の適当話

Device or resource busyエラーでumountできない件

大したことじゃないけど、
たまにumountコマンド流したらこういうエラーが上がってくる。。。

[root@centos ~]# umount /mnt/mountfile/
unmount error 16 = Device or resource busy
Refer to the umount.cifs(8) manual page (man 8 umount.cifs)
unmount error 16 = Device or resource busy
Refer to the umount.cifs(8) manual page (man 8 umount.cifs)

その時はオプションで-lを付けて実行すればよい。。。

[root@centos ~]# umount -l /mnt/mountfile/

説明。。。

[root@centos ~]# man umount
       -l     lazy アンマウント。現在のファイルシステムの階層構造から指定された
ファイルシステムを切り離し、ファイルシステムへの全ての参 照 が
              busy でなくなった時点ですぐに整理する。
(カーネル 2.4.11 以降である必要がある。)

他にも

[root@centos ~]# fuser -muv /mnt/mountfile/

実行結果で関連なプロセスをkillすれば、問題なくumountできるでしょう。。。

カーネルパニック時の再起動

カーネルパニック時の再起動
まぁ。。。言う必要もなく、カーネルパニックが発生した以上、やっぱり自動再起動して欲しいよな。。。
ダンプ取っとけば後日でも原因調べられるし。。。
サービスの復旧は原因調査より優先だから。。。

再起動の設定はかなり簡単
linuxのディフォルト設定では、パニックを起こされても再起動しない

[root@centos ~]# cat /proc/sys/kernel/panic
0

その0は時間(秒)って意味、いわばパニックが発生して何秒後システムを再起動するってこと。。。

そこで、

[root@centos ~]# echo 10 > /proc/sys/kernel/panic
[root@centos ~]# cat /proc/sys/kernel/panic
10

をしてあげれば、パニック発生して10秒後システムが再起動される。。。

ただ、この設定は一時的、再起動かけられると0に戻るので、
解決策じゃないけど、個人的に/etc/rc.localに書いとけば問題ないかと思うけどな。。。

・UPDATE 2010/11/16 12:30
/etc/sysctl.confファイルを修正すれば再起動後でも設定クリアされない。。。

[root@centos ~]# vi /etc/sysctl.conf
kernel.panic = 10  ←追記

設定反映

[root@centos ~]# sysctl -p

設定確認

[root@centos ~]# sysctl kernel.panic
kernel.panic = 10

複数NICに対し、複数プロバイダのルーティング設定

今回は2枚のNIC+2プロバイダの例。。。

イメージ:

各項目値:
eth0のIP:192.168.1.10
eth0のゲートウェアIP:192.168.1.1
eth0のネットワークIP:192.168.1.0/24

eth1のIP:192.168.2.10
eth1のゲートウェアIP:192.168.2.1
eth1のネットワークIP:192.168.2.0/24

Provider 1のルーティングテーブル名:gateway1
Provider 2のルーティングテーブル名:gateway2

まずはルーティングテーブルを追加(※net.ipv4.ip_forwardの設定も忘れず)

[root@centos ~]# vi /etc/iproute2/rt_tables
200     gateway1
201     gateway2

[root@centos ~]# vi /etc/sysctl.conf
net.ipv4.ip_forward = 0
↓
net.ipv4.ip_forward = 1

後は↓のコマンドで設定する(見りゃわかるの設定だから、説明なし(^^;))

[root@centos ~]# ip route add 192.168.1.0/24 dev eth0 src 192.168.1.10 table gateway1
[root@centos ~]# ip route add default via 192.168.1.1 table gateway1
[root@centos ~]# ip route add 192.168.2.0/24 dev eth1 src 192.168.2.10 table gateway2
[root@centos ~]# ip route add default via 192.168.2.1 table gateway2
[root@centos ~]# ip rule add from 192.168.1.10 table gateway1
[root@centos ~]# ip rule add from 192.168.2.10 table gateway2

↑だと、network再起動をかけると消えるので、下のようにshで自動実行させる

[root@centos ~]# vi /etc/sysconfig/network-scripts/ifup-local
#!/bin/sh

DEVICE=$1

IF1=eth0
IF2=eth1
IF1_IP=192.168.1.10
IF2_IP=192.168.2.10
GATEWAY1_IP=192.168.1.1
GATEWAY2_IP=192.168.2.1
IF1_NET=192.168.1.0/24
IF2_NET=192.168.2.0/24
ROUTING1_NAME=gateway1
ROUTING2_NAME=gateway2

case in
$IF1)
ip route add $IF1_NET dev $IF1 src $IF1_IP table $ROUTING1_NAME
ip route add default via $GATEWAY1_IP table $ROUTING1_NAME
ip rule add from $IF1_IP table $ROUTING1_NAME
;;

$IF2)
ip route add $IF2_NET dev $IF2 src $IF2_IP table $ROUTING2_NAME
ip route add default via $GATEWAY2_IP table $ROUTING2_NAME
ip rule add from $IF2_IP table $ROUTING2_NAME
;;
esac

後は実行権限を与えよう。。。

[root@centos ~]# chmod +x /etc/sysconfig/network-scripts/ifup-local

Network再起動後~設定確認

[root@centos ~]# ip route show
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.10 
192.168.2.0/24 dev eth1  proto kernel  scope link  src 192.168.2.10
169.254.0.0/16 dev eth1  scope link 
default via 192.168.1.1 dev eth0 

以上。。。

参考文献:
http://www.linux.or.jp/JF/JFdocs/Adv-Routing-HOWTO/lartc.rpdb.multiple-links.html#AEN288
http://www.hoster.jp/tech/multihomeing
http://www6.ocn.ne.jp/~bonz/tune/redhat62.html

LinuxサーバからグローバルIPを確認方法

Linuxサーバから下記コマンドを叩けば自分のグローバルIPを確認できる

簡単に作ったが、必要な方に役に立てれば。。。

[root@centos ~]# wget -q -O - ipcheck.mycurse.net

一応ブラウザからもできる。。。

http://ipcheck.mycurse.net

以上

yamahaルータsyslogを外部サーバへ出力

testメモです。。。

テスト済ルータ:RT107e,RTX1200,RTX1500

まずはルータ側の設定
ログのモードは下記3つ(本体のヘルプから引用)。。。
※デフォルトはinfoモードを有効になってる

1)デバッグモード
PPP などのデバッグ情報や本製品のデバッグ用のログを出力します。

2)Infoモード
本製品の基本的なログ情報を出力します。

3)Noticeモード
IP フィルタで落したパケット情報等を出力します。

有効にするコマンドは↓これ

# syslog debug on 
# syslog info on
# syslog notice on

フィルタの通過パケットのログも取りたい時は
まず、フィルタの設定を変更しよう。。。
例:

# ip filter 1020 pass * * icmp * *
↓
# ip filter 1020 pass-log * * icmp * *

ちなみに、コンソールで「show log」を叩けば、ログを確認できる。。。

外部ホストへ出力設定は↓
syslog ホストアドレス

例:

# syslog 192.168.1.1

後はSYSLOGファシリティの設定
※今回ちょうどサーバ側local5空いてるので、それにした。。。
例:

# syslog facility local5

↑まで、ルータの設定完了、と言っても2,3行だけ。。。

↓からはサーバ側の設定
今回のログ保存場所はこちら

/var/log/yamaha/syslog

次はファシリティの指定

[root@centos ~]# vi /etc/syslog.conf 
local5.*                                 /var/log/yamaha/syslog

外部からsyslogを受信できるようにする

[root@centos ~]# vi /etc/sysconfig/syslog
SYSLOGD_OPTIONS="-m 0"
↓
SYSLOGD_OPTIONS="-r -m 0"

反映するは再起動だけ

[root@centos ~]# /etc/init.d/syslog restart

残りはログローテーションの設定だけ。。。
以上。。。

アンケート

Xperia Z Ultra と Honami ならどっちを買う?

View Results

Loading ... Loading ...
2017年12月
« 8月    
 12
3456789
10111213141516
17181920212223
24252627282930
31  

 


俺のひとり言トップ | Xperia云々 | 俺のアンケート | 俺の独り言 | 俺のツール | 俺のつぶやき | Linuxサーバ構築 | Windowsサーバ構築 | シンクライアント