【问题标题】:Setup cron job to ping computer and write result to file设置 cron 作业以 ping 计算机并将结果写入文件
【发布时间】: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


【解决方案1】:

问题是 cronjob 语法。

1 * * * * 

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

将 1 替换为 * 使其每分钟运行一次。

【讨论】:

    猜你喜欢
    • 2012-11-29
    • 2021-05-08
    • 1970-01-01
    • 2011-05-29
    • 2013-05-09
    • 2013-09-01
    • 2012-05-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多