关于 crontab 的帮助

关于 crontab 的帮助

我有一个简单的 bash 脚本来 ping 我的家庭服务器。在 crontab 中,我将其配置为每凌晨 2 点运行。然后通过电子邮件将 ping 结果发送给我。

奇怪的是,无论我在 crontab 中配置什么,它总是每分钟运行一次。有什么想法为什么会发生这种情况吗?

0 2 * * * pinger.sh

剧本

#!/bin/sh
masterip="192.168.2.1"
pname="Home Server"
sender="From: Server Monitoring <[email protected]>"
subject="$pname Server Connectivity"
mail="[email protected]"

ping -c1 $masterip
if [ "$?" = 0 ];
  then
    pingmessage="$pname is reachable via LAN IP $masterip"
    pingms=$(ping -c 1 $masterip | sed -ne '/.*time=/{;s///;s/\..*//;p;}')
  else
    pingmessage="$pname is unreachable via LAN IP $masterip"
    pingms=$(ping -c 1 $masterip | sed -ne '/.*time=/{;s///;s/\..*//;p;}')
fi

{
echo "$pingmessage"
echo "with $pingms ms ping"
} | mail -a "$sender" -s "$subject" $mail

答案1

如果您将重定向附加到 crontab 中的命令

"Command >> /path/to/log 2>&1"

输出将是可见的。

请记住,Cron 尚未获取您的环境,因此您的命令路径应从根目录/path/to/command和脚本中的命令开始,除非您将 PATH 环境变量设置为所需的搜索路径。

相关内容