作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试从nagios设置对Docker容器的监控。我的nagios在一个VM上,而docker在另一个VM上。因此,要监视docker我正在尝试使用the shell script below:
#!/bin/bash
# Author: Erik Kristensen
# Email: erik@erikkristensen.com
# License: MIT
# Nagios Usage: check_nrpe!check_docker_container!_container_id_
# Usage: ./check_docker_container.sh _container_id_
#
# The script checks if a container is running.
# OK - running
# WARNING - container is ghosted
# CRITICAL - container is stopped
# UNKNOWN - does not exist
CONTAINER=$1
RUNNING=$(docker inspect --format="{{ .State.Running }}" $CONTAINER 2> /dev/null)
if [ $? -eq 1 ]; then
echo "UNKNOWN - $CONTAINER does not exist."
exit 3
fi
if [ "$RUNNING" == "false" ]; then
echo "CRITICAL - $CONTAINER is not running."
exit 2
fi
GHOST=$(docker inspect --format="{{ .State.Ghost }}" $CONTAINER)
if [ "$GHOST" == "true" ]; then
echo "WARNING - $CONTAINER has been ghosted."
exit 1
fi
STARTED=$(docker inspect --format="{{ .State.StartedAt }}" $CONTAINER)
NETWORK=$(docker inspect --format="{{ .NetworkSettings.IPAddress }}" $CONTAINER)
echo "OK - $CONTAINER is running. IP: $NETWORK, StartedAt: $STARTED"
check_docker: line 40: syntax error: unexpected end of file
最佳答案
问题是复制/粘贴中出现意外的eol字符。
这实际上是一个Bash问题,或更具体的说,这是一个特殊的字符,您可能看不到它的末尾,因为您可能是从网站复制/粘贴的。
问题的原因:
许多网站都提到eol问题,但look here则简短而切合实际。
DOS uses carriage return and line feed
("\r\n")
as a line ending, which Unix uses just line feed("\n")
. You need to be careful about transferring files between Windows machines and Unix machines to make sure the line endings are translated properly.
dos2unix file.sh
,但您可能需要先安装该实用程序。在Ubuntu中,它将是
sudo apt-get install dos2unix
。根据环境,对您来说可能是相同的。
M-x whitespace-mode RET
在本地切换,或查看(许多)详细信息和示例的链接。
关于bash - 如何从Nagios设置对Docker容器的监视,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31342815/
我是一名优秀的程序员,十分优秀!