◯WV-SFN130というパナソニック製のネットワークカメラについて
これは天井に取り付ける小さいドーム型のカメラである。
PoEで電源を供給できるので便利である。
撮影された動画データはRTSPストリーミングで別のビデオアプリで受信することもできるし、
内蔵のSDXCカードにmp4形式で保存しておくこともできる。
mp4ファイルに保存しておく場合、何か動きを感知したときだけその前後を記録することもできる。
その場合、mp4ファイルはその都度分割されフォルダにまとめられる。
SDカードは容量上限があるため、mp4ファイルは上書きされるように設定している。
◯SDカードに保存されたデータをネットワーク越しにコピーする方法
このフラッシュメモリに保存されたmp4ファイルは、ネットワークカメラのFTPサーバー機能でリモートから取り出すことができる。
今回、このカメラのFTPサーバー機能を利用しSD内の撮影データをネットワーク上のPCのディスクに保存することにした。
LFTPというCUIのFTPクライアントソフトウェアを用いた。
LFTPは、rsyncコマンドのように特定のディレクトリを指定してリモートの保存領域にミラーリングを行えるので便利である。
以下では、LFTPクライアントのインストールからミラーリング設定まで取り扱っている。
■LFTPクライアントソフトウェアのインストール
情報を表示させた。
# yum info lftp
Name : lftp
Arch : x86_64
Version : 4.4.8
Release : 12.el7_8.1
Size : 752 k
Repo : updates/7/x86_64
Summary : A sophisticated file transfer program
URL : http://lftp.yar.ru/
License : GPLv3+
Description : LFTP is a sophisticated ftp/http file transfer program. Like bash, it has job
: control and uses the readline library for input. It has bookmarks, built-in
: mirroring, and can transfer several files in parallel. It is designed with
: reliability in mind.
インストールを行った。
# yum install lftp
Installed:
lftp.x86_64 0:4.4.8-12.el7_8.1
Complete!
■動作設定ファイルの作成
lftpは、普通のftpクライアントみたいにダイアログ形式でも利用可能である。
しかしここではcronなどで動作を自動化をさせたいので、その作業手順をファイルに記述した。
◯作業手順ファイルの作成
FTPサーバーのIPアドレスは、192.168.1.11 とする。
# vi lftp_cam-11.task
open -u USERNAME,PASSWORD 192.168.1.11
#cd /B: ←テスト用コメントアウトしている
#ls . ←テスト用コメントアウトしている
mirror --delete --dry-run --verbose --log=/root/lftp-mirror_cam-11.log /B:/M_ALARM /root/cam-11/
close
quit
<mirrorコマンドのオプションなどについて説明>
/B:/M_ALARM これはFTPサーバー内のディレクトリでミラーリングのターゲットディレクトリである。
/root/cam-11/ これはミラー先のディレクトリである。
--delete データソース側に存在しないファイルやディレクトリは、ミラーリング側からも削除する。
(扱いに注意が必要である。rsyncコマンドで挙動の学習が必要だと思う。)
例えば、データソースディレクトリの /B:/M_ALARM には、最後にスラッシュがありませんが、
ミラーリング先ディレクトリの /root/cam-11/ には最後にスラッシュがあります。
この違いが不明な場合には、rsyncコマンドの挙動について学習が必要です。
さもなければ、--deleteオプションで、意図せずにデータを削除してしまう危険があります。
--dry-run どのようにファイル操作が行われるかのみ表示して実際のコピーや削除を行わない。
(テスト用なので実際にコピー削除操作するには、このオプションは消しておくこと。)
--verbose 進捗状況を表示させる。(デバッグ用途のため本番では不要)
--log=パス ログファイル(ファイル操作が逐一記録されるため、不要なら消しておく。)
すなわち、/B:/M_ALARMディレクトリが、/root/cam-11/内にミラーリングされることになる。
◯作業の実行
上で作成した作業手順ファイルを指定し、lftpコマンドを実行した。
後で、これをcrontab等でスケジュールしておけば良い。
# lftp -f lftp_cam-11.task
Making directory `10792301'
Transferring file `10792301/10792304_200728155937_A.mp4'
Transferring file `10792301/10792305_200728155955_A.mp4'
Transferring file `10792301/10792306_200728160011_A.mp4'
Transferring file `10792301/10792307_200728160042_A.mp4'
(略)
◯動作中での確認
ログファイルの内容
# cat lftp-mirror_cam-11.log
mkdir -p file:/root/cam-11/M_ALARM
mkdir file:/root/cam-11/M_ALARM/11042701
get -O /root/cam-11/M_ALARM/11042701 ftp://USERNAME:
[email protected]/B:/M_ALARM/11042701/11042788_200804170451_A.mp4
get -O /root/cam-11/M_ALARM/11042701 ftp://USERNAME:
[email protected]/B:/M_ALARM/11042701/11042789_200804170451_A.mp4
get -O /root/cam-11/M_ALARM/11042701 ftp://USERNAME:
[email protected]/B:/M_ALARM/11042701/11042790_200804170523_A.mp4
get -O /root/cam-11/M_ALARM/11042701 ftp://USERNAME:
[email protected]/B:/M_ALARM/11042701/11042791_200804170529_A.mp4
get -O /root/cam-11/M_ALARM/11042701 ftp://USERNAME:
[email protected]/B:/M_ALARM/11042701/11042792_200804170608_A.mp4
get -O /root/cam-11/M_ALARM/11042701 ftp://USERNAME:
[email protected]/B:/M_ALARM/11042701/11042793_200804170608_A.mp4
get -O /root/cam-11/M_ALARM/11042701 ftp://USERNAME:
[email protected]/B:/M_ALARM/11042701/11042794_200804170642_A.mp4
get -O /root/cam-11/M_ALARM/11042701 ftp://USERNAME:
[email protected]/B:/M_ALARM/11042701/11042795_200804170642_A.mp4
get -O /root/cam-11/M_ALARM/11042701 ftp://USERNAME:
[email protected]/B:/M_ALARM/11042701/11042796_200804170715_A.mp4
get -O /root/cam-11/M_ALARM/11042701 ftp://USERNAME:
[email protected]/B:/M_ALARM/11042701/11042797_200804170723_A.mp4
get -O /root/cam-11/M_ALARM/11042701 ftp://USERNAME:
[email protected]/B:/M_ALARM/11042701/11042798_200804170753_A.mp4
get -O /root/cam-11/M_ALARM/11042701 ftp://USERNAME:
[email protected]/B:/M_ALARM/11042701/11042799_200804170810_A.mp4
get -O /root/cam-11/M_ALARM/11042701 ftp://USERNAME:
[email protected]/B:/M_ALARM/11042701/11042800_200804170826_A.mp4
mkdir file:/root/cam-11/M_ALARM/11042801
get -O /root/cam-11/M_ALARM/11042801 ftp://USERNAME:
[email protected]/B:/M_ALARM/11042801/11042801_200804170848_A.mp4
get -O /root/cam-11/M_ALARM/11042801 ftp://USERNAME:
[email protected]/B:/M_ALARM/11042801/11042802_200804170907_A.mp4
get -O /root/cam-11/M_ALARM/11042801 ftp://USERNAME:
[email protected]/B:/M_ALARM/11042801/11042803_200804170923_A.mp4
get -O /root/cam-11/M_ALARM/11042801 ftp://USERNAME:
[email protected]/B:/M_ALARM/11042801/11042804_200804170940_A.mp4
(省略)
ファイルのミラーリングの最中であるが、次のようにディレクトリやファイルを確認できた。
# ls /root/cam-11/M_ALARM/11042701/ -all
total 240504
drwxr-xr-x. 2 root root 4096 Aug 6 07:28 .
drwxr-xr-x. 4 root root 38 Aug 6 07:28 ..
-rw-r--r--. 1 root root 19731324 Aug 4 13:05 11042788_200804170451_A.mp4
-rw-r--r--. 1 root root 19810264 Aug 4 13:05 11042789_200804170451_A.mp4
-rw-r--r--. 1 root root 19752184 Aug 4 13:05 11042790_200804170523_A.mp4
-rw-r--r--. 1 root root 14870080 Aug 4 13:05 11042791_200804170529_A.mp4
-rw-r--r--. 1 root root 19763796 Aug 4 13:06 11042792_200804170608_A.mp4
-rw-r--r--. 1 root root 16844324 Aug 4 13:06 11042793_200804170608_A.mp4
-rw-r--r--. 1 root root 19763300 Aug 4 13:06 11042794_200804170642_A.mp4
-rw-r--r--. 1 root root 18821500 Aug 4 13:07 11042795_200804170642_A.mp4
-rw-r--r--. 1 root root 19758892 Aug 4 13:07 11042796_200804170715_A.mp4
-rw-r--r--. 1 root root 19767132 Aug 4 13:07 11042797_200804170723_A.mp4
-rw-r--r--. 1 root root 18794032 Aug 4 13:08 11042798_200804170753_A.mp4
-rw-r--r--. 1 root root 19761400 Aug 4 13:08 11042799_200804170810_A.mp4
-rw-r--r--. 1 root root 18801800 Aug 4 13:08 11042800_200804170826_A.mp4
Linuxマシンにミラーリング後は、煮たり焼いたりできる。
以上
<参考>
・LFTPでサーバ間でファイル転送をする
< https://qiita.com/akkykg/items/bea5f11587b75d3db2cc > 2020年8月6日
・FTP でも rsync みたいにコマンドからファイル転送したい
< https://girigiribauer.com/tech/20160903/ >
・Linux / Unix: lftp Command To Mirror Files and Directories
< https://www.cyberciti.biz/faq/lftp-mirror-example/ > 2020年8月6日
・How do I back up via FTP and rsync?
< https://askubuntu.com/questions/34868/how-do-i-back-up-via-ftp-and-rsync > 2020年8月6日
・Sync remote folders on Linux
< https://superuser.com/questions/6892/sync-remote-folders-on-linux > 2020年8月6日