设置cron作业以ping计算机并将结果写入文件

时间:2014-01-28 01:33:27

标签: macos bash cron crontab ping

我正在构建一个接口,基本上列出我本地网络中“活着”的计算机,并且或多或少都有这些节点的列表及其“状态”。

我在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分钟了,还没有写过,我做错了什么?

1 个答案:

答案 0 :(得分:1)

问题是cronjob语法。

1 * * * * 

在上下文中,*表示每个可能的值,而数字表示特定时间。所以这个文学意味着每个星期每个月每天每小时的第1分钟。

*替换1会使其每分钟都运行一次。