Linux 检查 Apache URL 上是否存在图像

Linux 检查 Apache URL 上是否存在图像

我正在编写一个程序,它使用 Linux 命令来检查本地服务器上是否存在文件。

该程序使用提供的参数执行命令

ls *ARG_GOES_HERE* &> /dev/null

然后检查状态是否能够找到该文件。

问题是有时文件不是像这样的直接路径

/var/www/html/images/myImage.jpg

有时图像位置是使用网络位置存储的

http://192.168.1.2/images/myImage.jpg

在 linux 命令中失败。

是否可以使用 bash 检查本地 apache 位置是否存在图像?

答案1

您可以使用curl命令检查文件是否存在并且可以通过 HTTP 访问。像这样的东西应该适合你:

path_to_file=images/myImage.jpg
if curl --head --location --silent --fail "http://192.168.1.2/$path_to_file" > /dev/null
then
    printf "%s exists\n" "$path_to_file"
else
    printf "%s does not exist\n" "$path_to_file"
fi

curl使用以下选项:

  • --head– 仅获取 HTTP 标头(不需要正文)
  • --location– 遵循任何 HTTP 重定向
  • --silent– 不显示进度表或错误消息
  • --failcurl如果 HTTP 请求失败,则命令会失败并显示错误状态,例如,如果 Web 服务器响应 404,则命令会curl以状态 22(错误)而不是 0(成功)退出。

相关内容