ネットワークファイルがあることを確認する

ネットワークファイルがあることを確認する

私はたくさん見ましたが、この問題を解決できませんでした。

ローカルファイルでは動作させることができますが、ネットワークファイルでは動作しません。

ファイルがあるかどうかを確認したいインターネットから存在するが、どのように?

私の端末でこれを試しました。

 [ -f "192.168.1.46:8090/camera.jpg" ] && echo 1 || echo 0

ファイルが存在すると確信している間、ゼロが出力され続けます。誰でも助けることができますか?

編集する:

より明確に言えば:

私のRaspberry Pi(Raspbianを含む)でFFserverとFFmpegを実行します。ストリームをCamera.mjpegとCamera.jpgにトランスコードします。私のRaspberry Pi自体のローカルIPアドレスは19.168.1.46なので、時々トランスコーディングプロセスが中断され、mjpegがファイルを読み取ることができないので、ファイルがまだそこにあるかどうかを確認したかったのです.これで、次のシェルコードが作成されました。

  #!/bin/bash       
  url=http://192.168.1.46:80/test.txt
  url2=http://192.168.1.46:8090/camera.mjpeg

  if curl --output /dev/null --silent --head --fail "$url"; then
    echo "URL exists: $url"
  else
    echo "URL does not exist: $url"
  fi

  if curl --output /dev/null --silent --head --fail "$url2"; then
    echo "URL exists: $url2"
  else
    echo "URL does not exist: $url2"
  fi

出力は次のとおりです。

  URL exists: http://192.168.1.46:80/test.txt
  URL does not exist: http://192.168.1.46:8090/camera.mjpeg

問題は:他のPCのブラウザを介してアクセスして問題なく表示できるため、Camera.mjpegがあると確信していますが、まだ存在していないと表示されます。

答え1

192.168.1.46:8090/camera.jpg単に存在しないファイルの名前camera.jpg(地元の./192.168.1.46:8090.directoryというディレクトリは./192.168.1.46:8090存在しません。)

curlやwget(wget)など、サーバーにアクセスできるプログラムを使用する必要があります。

サーバーがHTTPの場合は、curlオプションを使用して--headサーバーにファイルを送信せずにHTTPヘッダーのみを送信するように指示します。これだけで十分です。例えばcurl --head http://192.168.1.46:8090/camera.jpg

関連情報