Posts Tagged ‘Server’

tux

#!/usr/bin/perl
#!/usr/bin/python

などなど、Linuxサーバー上でスクリプトファイルを作成する際、文頭につけるおまじないの様な”#!” ですが、
これには”#”でコメントアウト “!”で次のプログラムで実行の意味を持っています。

つまり、スクリプトファイルの種類はperlやpython等に限定されず、対話型のプログラムであれば何にせよ
スクリプトファイルを作って実行出来るという事になります。

例えばLinuxのほとんどのサーバーに入っているcd(逆ポーランド記法計算プログラム)のスクリプトも
この形式に則れば書けるという事です。

■ 単体で実行する場合

dctestというファイルを作成して、中に以下のコードを書いてみます。

#!/usr/bin/dc
2 3 +
5 *
p

逆ポーランド記法においては 2 3 + = 2 + 3
5 * で前行の解に5を掛けています。dcはすべての式を入力し終わった後にpを入力すると演算結果を吐き出します。
つまりこの場合 (2 + 3) * 5 の結果 25 を標準出力(ディスプレイ)に出力するはずです。

実行権限を与えてやってから./dctestを実行しましょう。
ディスプレイに25が表示されているはずです。これは !/usr/bin/dc が機能した形ですね。

■ 他のバイナリの引数として与える場合

続いて以下を実行してみましょう

$cat ./dctest | dc

周知のとおりcatはファイルの中身を標準出力に吐き出すコマンドですが、cat ./dctest まで実行すると
この時点では#!/usr/bin/dcの部分まで出力されているのがわかります。
これをパイプを通してdcに渡すと、dcは#をコメントとみなし、その行を処理しません。
したがってファイルの計算部分だけを実行する事で25という正しい解を返す事ができます。
もしコメント部分を無視しない仕様であるなら、dcのプロセスを2重起動する事になりますので。

という事で”#!”の深いようなそうでないような話でした。
unix系システムの一貫性とシンプル性を少しわかっていただけたかと思います。

3744953433_e3b523e24d_b

サーバーにウェブカメラを設置してみた。

使ったカメラだが、UVC(USB Video Device Class)に対応していればどれでも良い感じ。

ウェブカメラソフトは複数あるようだが、今回は「Motion」を使ってみた。

こいつは単体で動くのでWebサーバーとあわせて運用する必要がないのが素敵(?)

それと名前の通りモーションセンサー(動体検知)機能を備えており、監視カメラとして優秀かと。

という事でまずはインストール。ちなみにUbuntu環境です。


sudo apt-get install motion

でインストールが終わったらdaemonとして起動するために設定ファイルをいじる


sudo vim /etc/motion/motion.conf

で設定ファイルを開きdaemonの項目をonに書き換える。

その他コンフィグの説明

process_id_fileは一時ファイルの置き場所(適当でOK) デフォルトは/tmp/motion/motion.pid

width heightはwebcameraの解像度に合わせた設定をしないと表示しなくなるので注意

デフォルトはwidth:320 height:240 あんまり試行してないけどこの値の倍数なら大丈夫ぽい。

thresholdは動体検知の感度。

ffmpeg_video_codec は mpeg4にすると良い

locateは動体を検知した部分に枠を表示するかどうか

target_dir は動体検知が起動した際に確保した部分動画が保存されたりスナップショットが保存されたりする。

webcam_localhost はこれがONの場合同じネットワーク内からしかカメラの映像を見れないのでOFFにする事で外部に公開できる。

control_authentication 上の項目にあわせて、id:passという書式で記入しておくと管理画面にアクセスする際のIDとPASSを設定できる。

snapshot_interval はスナップショットを定時で撮る事ができる。単位は秒で0で機能をOFFにできる。

いちおう自分がいじってる設定は上に書いたくらい。

準備ができたら起動


sudo motion

これでブラウザのアドレス欄に

http://localhost:8081でカメラの映像が見れる

http://localhost:8080で設定画面に入れる。この時上のcontrol_authenticationで設定したIDとPASSを使用して入る

外部ネットワークからアクセスする際はlocalhostの部分をドメイン名に変更すればOK

追記:2013/08/12
このページが更に参考になりそうだったのでメモ
http://teppei.hateblo.jp/entry/2013/08/10/114147

SQL Server Compact 3.5の使い方を調べている最中、SqlCeConnectionを宣言できなくて、どこにリソースあるんだろう~と小一時間ほどハマってしまった。

結論からいうと
C:\Program Files\Microsoft SQL Server Compact Edition\v3.5\Desktop\System.Data.SqlServerCe.dll
に存在していたので、こいつを参照しました。

http://technet.microsoft.com/ja-jp/library/bb190958.aspx
を見てみるとMicrosoft SQL Server Compactを単体でインストールする事ができるようだが、
おそらく、.NetFrameWorkをインストールする際に同時にインストールされるのではないかなと思う。

現に、僕のパソコンには単体インストールした記憶がないけど、それは既にあったので。