【发布时间】:2014-02-19 03:21:36
【问题描述】:
我正在构建一个界面来基本上列出我本地网络上“活动”的计算机,并且或多或少有这些节点的列表,以及它们的“状态”。
我创建了一个名为 farm_ping.sh 的文件,位于 /Volumes/raid/farm_scripts/_apps/_scripts/farm_ping.sh 下
此文件包含以下内容,它只是简单地 ping IP 并将其结果写入一个也由给定 IP 命名的 txt 文件:
HOSTS="192.168.1.110"
# no ping request
COUNT=1
for myHost in $HOSTS
do
count=$(ping -c $COUNT $myHost | grep 'received' | awk -F',' '{ print $2 }' | awk '{ print $1 }')
if [ $count -eq 0 ]; then
# 100% failed
echo "Host : $myHost is down (ping failed) at $(date)" > /Volumes/raid/farm_script/nodes_response/$myHost.txt
else
# 100% Passed
echo "Host : $myHost is running (ping successful) at $(date)" > /Volumes/raid/farm_script/nodes_response/$myHost.txt
fi
done
我希望它每分钟运行一次这个脚本,这是我为创建一个 cron 作业所做的:
env EDITOR=nano crontab -e
在我写的 cron 工作中:
1 * * * * /Volumes/raid/farm_script/_apps/_scripts/farm_ping.sh
我保存了这个文件,但是已经 30 分钟了,还没有写任何东西,我做错了什么?
【问题讨论】:
-
在您的 crontab 中尝试
/bin/bash /Volumes/raid/farm_script/_apps/_scripts/farm_ping.sh。还要确保您的脚本是可执行的。此外,您应该引用变量。 -
谢谢@BroSlow,如果我只是运行
chmod +x farm_ping.sh,那么我唯一要做的就是让它可执行吗? -
假设你在运行
crontab -e时以自己的身份运行,是的。 -
不幸的是它仍然无法正常工作@BroSlow,这是因为我的脚本中可能有错误吗?如果我要更新我的 .sh 脚本,我是否必须让它再次可执行?
-
糟糕,查看您的脚本,完全忽略了您的实际 cron 语法,这将在每小时的第一分钟运行。要每分钟运行一次,请将
1替换为*
标签: macos bash cron crontab ping