投げ銭

★当サイトへの投げ銭(PayPal)★

LINK


(無償)
logo
世界中で使われるISO標準オフィスソフト(MSオフィス互換)
The Document Foundation Wiki

人気の投稿(1ヶ月間)

Ad

Ad

投げ銭

★当サイトへの投げ銭(PayPal)★

2020年8月6日木曜日

【Linux CentOS 7】FTPサーバーからローカルPCへrsyncみたいに同期させる【LFTPクライアント】


◯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:PASSWORD@192.168.1.11/B:/M_ALARM/11042701/11042788_200804170451_A.mp4
get -O /root/cam-11/M_ALARM/11042701 ftp://USERNAME:PASSWORD@192.168.1.11/B:/M_ALARM/11042701/11042789_200804170451_A.mp4
get -O /root/cam-11/M_ALARM/11042701 ftp://USERNAME:PASSWORD@192.168.1.11/B:/M_ALARM/11042701/11042790_200804170523_A.mp4
get -O /root/cam-11/M_ALARM/11042701 ftp://USERNAME:PASSWORD@192.168.1.11/B:/M_ALARM/11042701/11042791_200804170529_A.mp4
get -O /root/cam-11/M_ALARM/11042701 ftp://USERNAME:PASSWORD@192.168.1.11/B:/M_ALARM/11042701/11042792_200804170608_A.mp4
get -O /root/cam-11/M_ALARM/11042701 ftp://USERNAME:PASSWORD@192.168.1.11/B:/M_ALARM/11042701/11042793_200804170608_A.mp4
get -O /root/cam-11/M_ALARM/11042701 ftp://USERNAME:PASSWORD@192.168.1.11/B:/M_ALARM/11042701/11042794_200804170642_A.mp4
get -O /root/cam-11/M_ALARM/11042701 ftp://USERNAME:PASSWORD@192.168.1.11/B:/M_ALARM/11042701/11042795_200804170642_A.mp4
get -O /root/cam-11/M_ALARM/11042701 ftp://USERNAME:PASSWORD@192.168.1.11/B:/M_ALARM/11042701/11042796_200804170715_A.mp4
get -O /root/cam-11/M_ALARM/11042701 ftp://USERNAME:PASSWORD@192.168.1.11/B:/M_ALARM/11042701/11042797_200804170723_A.mp4
get -O /root/cam-11/M_ALARM/11042701 ftp://USERNAME:PASSWORD@192.168.1.11/B:/M_ALARM/11042701/11042798_200804170753_A.mp4
get -O /root/cam-11/M_ALARM/11042701 ftp://USERNAME:PASSWORD@192.168.1.11/B:/M_ALARM/11042701/11042799_200804170810_A.mp4
get -O /root/cam-11/M_ALARM/11042701 ftp://USERNAME:PASSWORD@192.168.1.11/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:PASSWORD@192.168.1.11/B:/M_ALARM/11042801/11042801_200804170848_A.mp4
get -O /root/cam-11/M_ALARM/11042801 ftp://USERNAME:PASSWORD@192.168.1.11/B:/M_ALARM/11042801/11042802_200804170907_A.mp4
get -O /root/cam-11/M_ALARM/11042801 ftp://USERNAME:PASSWORD@192.168.1.11/B:/M_ALARM/11042801/11042803_200804170923_A.mp4
get -O /root/cam-11/M_ALARM/11042801 ftp://USERNAME:PASSWORD@192.168.1.11/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日

投げ銭

★当サイトへの投げ銭(PayPal)★

Ad

Ad