私は自宅と職場の両方で個人のラップトップを使用しており、どちらの場合もnfs共有をマウントしています。ラップトップの電源を入れるたびに行われるため、これらの共有のマウントを自動化したいと思います。
ワイヤレス接続がネットワークを見つけて接続するのに約30分かかるため、通常の起動コマンドを実行することはできません。
そこで、適切な共有をマウントできるように、ネットワークに接続しているかどうか、およびネットワークのessidを5秒ごとにチェックするスクリプトを作成したいと思いました。
私はiwconfigを調べましたが、ifconfigはessidを返しませんが、実際のIPアドレスのみを返します。
ifconfig return .. ..
eth0 Link encap:Ethernet HWaddr 00:26:2d:a2:01:a8
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupt:16
eth1 Link encap:Ethernet HWaddr f0:7b:cb:45:36:b2
inet addr:192.168.0.48 Bcast:192.168.3.255 Mask:255.255.252.0
inet6 addr: fe80::f27b:cbff:fe45:36b2/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:30972 errors:0 dropped:0 overruns:0 frame:124824
TX packets:31414 errors:16 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:25279206 (25.2 MB) TX bytes:4716009 (4.7 MB)
Interrupt:17
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:336 errors:0 dropped:0 overruns:0 frame:0
TX packets:336 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:48501 (48.5 KB) TX bytes:48501 (48.5 KB)
iwconfigは...を返します.
lo no wireless extensions.
eth0 no wireless extensions.
eth1 IEEE 802.11 Access Point: Not-Associated
Link Quality:5 Signal level:210 Noise level:165
Rx invalid nwid:0 invalid crypt:0 invalid misc:0
vboxnet0 no wireless extensions.
iwlistは有用なものを何も返しませんでした...
iwlist scan
lo Interface doesn't support scanning.
eth0 Interface doesn't support scanning.
eth1 Interface doesn't support scanning.
vboxnet0 Interface doesn't support scanning.
Linuxコマンドラインを介して接続しているワイヤレスネットワークのessidを見つける簡単な方法を知っている人はいますか。
更新上記のifconfigとiwconfigの情報を追加しました。また、Ubuntu 10.10を実行しており、10.04からアップグレードされました。これはワイヤレスを多少混乱させたようです。 gnomeの古いNetwork-Managerアプリを使用しなくなりました。学校のワイヤレスネットワークにも接続できないので、そもそもワイヤレスには間違いなくファンキーなものがあります。
iwevent return .. ..
iwevent
Waiting for Wireless Events from interfaces...
16:34:33.614296 eth1 Set ESSID:"" [13]
16:34:33.615723 eth1 Custom driver event:
16:34:33.615774 eth1 New Access Point/Cell address:Not-Associated
16:34:33.714835 eth1 Set ESSID:"" [62]
16:34:41.869636 eth1 Set Mode:Managed
16:34:41.869688 eth1 Set ESSID:"" [254]
16:34:42.815795 eth1 Custom driver event:
16:35:07.141450 eth1 Set Mode:Managed
16:35:07.141502 eth1 Set Frequency:24.12 GHz
16:35:07.141601 eth1 Set ESSID:"" [121]
16:35:08.160515 eth1 New Access Point/Cell address:00:1E:00:00:19:0E
16:35:08.252912 eth1 Registered node:00:1E:52:79:19:0E
16:35:08.252970 eth1 Custom driver event:
Iwgetidを実行すると、接続されているネットワークのワイヤレスデバイスとSSIDを取得できます。これはワイヤレスツールの一部です。iweventもその一部であるため、すでにインストールされているように見えます。
iwlist scan
は確かにあなたにssidを与えるために働くはずです。ただし、あなたの例からは、実際のワイヤレスインターフェイスは表示されません。それを理解するのを助けるために、iwconfigとifconfigの出力を質問に貼り付けることをお勧めします。
また、iwevent
のマニュアルページを見ると、おそらくあなたの最善の策は、代わりにiweventを呼び出すループを実行することだと思います。 ssidが変更されると、iweventは新しいssidを検出して報告します。
5秒ごとのポーリングはかなり集中的に聞こえることに注意してください。おそらく、実行頻度を減らす必要がありますか?
私は、iwconfigを使用してこのようなチェックを処理する古いスクリプトを持っています。これは、いくつかのFedoraディストリビューションで数年間機能しています。
iwconfig wlan0 | grep ESSID | awk -F: '{print $ 2}'
また、取得したIPアドレスに基づいてスクリプトを機能させ、ホームネットワークに別のサブネットを提供させることもできます。
または、デフォルトルートのMACアドレスに基づいてください。ルーターが変更された場合は、更新する必要があります。