投げ銭

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

LINK


(無償、寄付歓迎) logo
世界中で使われるISO標準オフィスソフト(MSオフィス互換)

★LibreOfficeの導入事例★
詳細について

人気の投稿(1ヶ月間)

Ad

Ad

投げ銭

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

2020年8月28日金曜日

【ASP.NET Core 3.1.102】他マシンのブラウザからでもhttpでWEBページにアクセスできるようにする【Linux】

asp.net core 3で、テストプロジェクト(myproject)を作成した。
しかしプロジェクトのフォルダにて dotnet run して、他のマシンのブラウザからIPアドレスを入力したがWEBページが表示できなかった。

プログラムが動作しているマシン上のブラウザからなら、アクセスが可能だった。
一種のアクセス制御がデフォルトで機能しているためだとわかった。
調べてみるとデフォルトでは、localhost(127.0.0.1)でのみListenしているようだった。

他のマシンのブラウザからもアクセス可能なようにするには、イントラネットからアクセスできるその他のIPアドレスでもListenするように設定する必要があった。


そして、次の手順の設定することによって外部マシンからでも、テストプログラムにhttpあるいは、httpsアクセスが可能になった。

httpsでなく、httpでアクセスしたい場合は、手順1だけでなく、手順2の設定も必要になる。



1、launchSettings.json で、applicationUrl でListenするIPアドレスとポートを指定する。

$ cat Properties/launchSettings.json

{
  "iisSettings": {
    "windowsAuthentication": false, 
    "anonymousAuthentication": true, 
    "iisExpress": {
      "applicationUrl": "http://localhost:9291",
      "sslPort": 44347
    }
  },
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    },
    "myproject": {
      "commandName": "Project",
      "launchBrowser": true,
      "applicationUrl": "https://192.168.12.13:5001;http://192.168.12.13:5000;https://localhost:5001;http://localhost:5000",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}


上記設定で、https://192.168.12.13:5001;http://192.168.12.13:5000 のように、httpsも併せて設定している場合は、httpsでも接続できるのでアクセスできなくなる問題は生じない。

しかし、httpのみ設定した場合は、デフォルトではうまくアクセスできなかった。
これは、httpsでアクセスするように自動でリダイレクトされるからだ。

httpでアクセスしたい場合は、手順1に加えて、手順2のようにしてhttpsでのリダイレクトを行わないように設定する必要がある。



2、app.UseHttpsRedirection(); をコメントアウトする。(必要に応じて)

app.UseHttpsRedirection() が設定されている場合、httpでアクセスしても、httpsでアクセスするようにリダイレクトされてしまう。
そこで、httpでもアクセスできるように、下記のようにコメントアウトしておく。


namespace surveilcam
{
    public class Startup
    {
(略)

// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
(略)
            //app.UseHttpsRedirection();
(略)



以上で、設定は完了である。
dotnet run --project myproject で動作させ、ブラウザからhttpでアクセスすることができた。

$ dotnet run --project myproject
info: Microsoft.Hosting.Lifetime[0]
      Now listening on: https://192.168.12.13:4001
info: Microsoft.Hosting.Lifetime[0]
      Now listening on: http://192.168.12.13:4000
info: Microsoft.Hosting.Lifetime[0]
      Now listening on: https://localhost:4001
info: Microsoft.Hosting.Lifetime[0]
      Now listening on: http://localhost:4000
info: Microsoft.Hosting.Lifetime[0]
      Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
      Hosting environment: Development
info: Microsoft.Hosting.Lifetime[0]
      Content root path: /home/pi/dotnet/razortest
info: Microsoft.Hosting.Lifetime[0]



<参考>
・5 ways to set the URLs for an ASP.NET Core app
< https://andrewlock.net/5-ways-to-set-the-urls-for-an-aspnetcore-app/ > 2020年8月28日

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