find コマンドでリンク先も探す

メモ。

$ find -follow 

-follow オプションを付ける。

Raspberry Pi に MRTG を入れてみる (2)

短いですが、前回の続き。

前回、 MRTG でグラフ化するデータを取得するために SNMP のパッケージも入れました。

インストールすだけで起動しているので見てみます。

$ netstat -lun

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address   Foreign Address   State
udp        0      0 127.0.0.1:161   0.0.0.0:*

このように UDP 127.0.0.1 で待機しています。

サーバ内部で使用する場合はこれでも良いのですが 別のサーバからも SNMP にアクセスすることを 考えて設定を変更します。

SNMP の設定ファイルを編集します。

$ sudo vi /etc/snmp/snmpd.conf

これを。

#  Listen for connections from the local system only
agentAddress  udp:127.0.0.1:161

こうします。

#  Listen for connections from the local system only
agentAddress  udp:161

あとはサービスを再起動。

$ sudo /etc/init.d/snmpd restart

これで別サーバからもアクセスできるようになりました。

$ netstat -lun

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address   Foreign Address   State
udp        0      0 0.0.0.0:161     0.0.0.0:*

今回はここまで。

Raspberry Pi に MRTG を入れてみる (1)

ちょっと MRTG の復習がてら Raspberry Pi に MRTG を入れてみたいと思います。

とりあえずパッケージを最新の状態に。

$ sudo apt-get update

ちなみに 2014-01-07-wheezy-raspbian が入っています。

$ sudo apt-get upgrade

Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages have been kept back:
  wolfram-engine
The following packages will be upgraded:
  curl dpkg dpkg-dev file libcurl3 libcurl3-gnutls libdpkg-perl libgnutls26 libmagic1 libxfont1 libyaml-0-2
  lsb-base python3-pifacedigital-scratch-handler tzdata udisks wget
16 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
Need to get 8,296 kB of archives.
After this operation, 570 kB of additional disk space will be used.
Do you want to continue [Y/n]?

インストール前後のパッケージのリストも取得しておきます。

$ sudo dpkg -l > ~/package_list_before_mrtg.txt

MRTG と SNMP のデーモンとクライアントを入れます。

$ sudo apt-get install snmpd snmp mrtg

Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  libio-socket-inet6-perl libperl5.14 libsensors4 libsnmp-base libsnmp-session-perl libsnmp15
  libsocket6-perl
Suggested packages:
  lm-sensors snmp-mibs-downloader mrtg-contrib
The following NEW packages will be installed:
  libio-socket-inet6-perl libperl5.14 libsensors4 libsnmp-base libsnmp-session-perl libsnmp15
  libsocket6-perl mrtg snmp snmpd
0 upgraded, 10 newly installed, 0 to remove and 1 not upgraded.
Need to get 5,863 kB of archives.
After this operation, 9,507 kB of additional disk space will be used.
Do you want to continue [Y/n]?

途中で "Make /etc/mrtg.cfg owned by and readable only by root?" とか聞かれるので "Yes" と答えておきます。

$ sudo dpkg -l > ~/package_list_after_mrtg.txt

インストール前後のパッケージの差分は次のような感じ。

$ cd
$ diff package_list_after_mrtg.txt package_list_before_mrtg.txt

292d291
< ii  libio-socket-inet6-perl 2.69-2           all   object interface for AF_INET6 domain sockets
357d355
< ii  libperl5.14             5.14.2-21+rpi2   armhf shared Perl library
403d400
< ii  libsensors4:armhf       1:3.3.2-2+deb7u1 armhf library to read temperature/voltage/fan sensors
413,416d409
< ii  libsnmp-base            5.4.3~dfsg-2.7   all   SNMP (Simple Network Management Protocol) MIBs and documentation
< ii  libsnmp-session-perl    1.13-1           all   Perl support for accessing SNMP-aware devices
< ii  libsnmp15               5.4.3~dfsg-2.7   armhf SNMP (Simple Network Management Protocol) library
< ii  libsocket6-perl         0.23-1           armhf Perl extensions for IPv6
549d541
< ii  mrtg                    2.17.4-2         armhf multi router traffic grapher
639,640d630
< ii  snmp                    5.4.3~dfsg-2.7   armhf SNMP (Simple Network Management Protocol) applications
< ii  snmpd                   5.4.3~dfsg-2.7   armhf SNMP (Simple Network Management Protocol) agents

なんか色々と入りました。

今回はここまで。

Raspberry Pi の rasbian を 2014-01-07 にする

久しぶりの Raspberry PI ネタです。

今回は raspbian を配布されている最新にしたいと思います。 というわけで、 2014-01-07-wheezy-raspbian を入れます。

[参考サイト]
Raspberry Pi メモ (26) まとめ - Jun's homepage

いつものように 上記サイトを参考に進めます。

ダウンロードして、解凍して、SDカードに書き込んで起動。

2013-12-20-wheezy-raspbian で Mathematica が入ってます。 適当にコマンドを実行。

$ mathematica -v
10.0

なんか出ました。

2013-09-25-wheezy-raspbian から Java が入ってます。

$ java -version
java version "1.7.0_40"
Java(TM) SE Runtime Environment (build 1.7.0_40-b43)
Java HotSpot(TM) Client VM (build 24.0-b56, mixed mode)

とりあえずここまで。

しばらく放っておくと追いかけるのが大変ですね。

bash で乱数を使う

bash には乱数を取得できる変数?が 用意されています。

$ echo $RANDOM
2036

繰り返し呼ぶと違う値が返ります。

$ echo $RANDOM
2036

$ echo $RANDOM
17653

man には次のようにあります。

RANDOM
  Each  time  this  parameter  is  referenced,  a  random  integer between 0 and 32767 is generated.
  The sequence of random numbers may be initialized by assigning a value to RANDOM.
  If RANDOM is  unset, it loses its special properties, even if it is subsequently reset.

範囲は 0 〜 32767 のようです。

範囲を指定したい場合は、 % で余りを求めます。

$ echo $(($RANDOM % 10))
7

printf で 0詰めにもできます。

$ VAL=`printf "%05d" $RANDOM`
$ echo $VAL
02036

RANDOM に値を設定すると、乱数の種を決めることができます。

$ RANDOM=3
$ echo $RANDOM
17653
$ echo $RANDOM
12499

$ RANDOM=3
$ echo $RANDOM
17653
$ echo $RANDOM
12499

同じ種を指定すると、同じ値が返ってきます。

PHP: Invalid argument supplied for foreach()

Invalid argument supplied for foreach()

この警告は、 PHP の foreach で、 配列として扱えないものを回そうとしたときに出ます。

実際あったのが SimpleXML を使っていて、 XPath の取得結果でした。

foreach($xml->xpath('xxxx') as $data) {}

この場合、XPath で取得できないと FALSE が返ってきます。 その結果、foreach で警告が出ます。

IE の showModalDialog と初期フォーカス

IE の showModalDialog で開いたウィンドウは、 先頭のリンクやフォームに、 自動的にフォーカスがセットされてしまいます。

ページが読み込まれたときに 下のようになります。

WRITE_0775_01

この状態で [Enter]キーを押すと、 当然このリンクをクリックしたことになってしまいます。 また、JavaScript で

window.scrollTo(0, xx);

のようなスクロール操作を行っても フォーカスがセットされたオブジェクトが 隠れるようなスクロールはさせてくれません。

対処方法の 1つとして、 次のように showModalDialog で開いたウィンドウの onload イベントで、 ウィンドウ全体にフォーカスを当て直します。

  <script>
      if (window.attachEvent) {
          window.attachEvent("onload", function() {
                  window.focus();
              });
      }
  </script>
</body>
</html>

IE 用の対策なので window.attachEvent を使用しています。


        

WRITE_0775_02

これで、フォーカスが解除されます。

Windows8 で動作確認

今更ながら自作ツールの Windows8 での動作を確認しました。

VB の標準ライブラリと API しか使っていないので Windows8 でも問題なく動きました。 (もちろん Windows7 でも動きました)

このあたりの Windowsの互換性はスゴいですね。

Google サイト内検索

Amazonアソシエイト