Sahara's WebLog

日記のような、備忘録のような、うらみつらみのような、自慢のような…。

Ubuntu シェルスクリプトでWEBカメラの画像を保存する。

Orange PiにWEBカメラ(Logicool C270)をつないで画像を読み込ませている。
Orange Pi PC Plus – WEBカメラをつないでみる。 –
こんな奴の方が楽なのかなと思いながらも、とりあえず手持ちのWEBカメラをためしてみることにした。

自動で何枚も撮影して保存してほしいので、日付日時を名前にしたい。
検索したら、シェルスクリプトやらを用いた方法に当たったのでやってみる。
「シェルスクリプト?何それおいしそう。」というレベル。

とにかくここにある通りにやり、
$ ./take.sh
としたら実行できなかったが、ここを見て、
$ sh ./take.sh
とやったら実行できて、ファイルが保存された。
だが、作成された画像ファイルをSFTPでPCに転送しようとするとno such file or directoryと出て転送できない。
パーミッションかと思って変更しようとしたが出来ない。
所有者も変更したが転送は出来ない。

さんざん悩んで検索もしたがわからない。
ふとSSHでリストを取ってみたら、ファイル名に付けた覚えのないクエスチョンマークが2つ付いている(左の3つのファイル)。

最初はピンと来なかったが、ファイル名を付けている部分のスプリプトを変更してみたら、クエスチョンマークが1つ減った(右の2つのファイル)。

スクリプトで改行のある位置にこのクエスチョンマークが付くことに気づいた。

Windowsでは改行が[CR]+[LF]だが、Unix系では[LF]だ。
[CR]が余分なものと判断されずにファイル名の一部に用いられてしまったのだろう。
改行を[LF]にしてスクリプトを保存し直し、SFTPで転送して実行すると、ファイル名のクエスチョンマークは無くなり、転送もできるようになった。

ちなみに、この厄介なファイル、SFTPでは削除すらできずに途方にくれたが、SSHではファイル名の中のクエスチョンマークをそのまま入力して削除できた。
例えば、
rm 197001010827?.jpg?
とやればいい。
めでたしめでたし。

じゃねえ、それを一定間隔で実行しなきゃ。
それにはcronとやらを設定するらしい。
crontab -e
とやるんだが、最初にエディタの選択からして何が何やら。

edを選んだのだが、使い方はここを見ながら。
select-editor
とすれば選び直せる。
crontabそのものについてはここを参考にした。

ともあれ、crontabに以下を追加する。


これで画像が自動的に保存され続ける。

このエントリーをはてなブックマークに追加

Posted under: Orange Pi, ubuntu


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Time limit is exhausted. Please reload CAPTCHA.