1

我似乎无法将简单的 bash 文件作为每分钟运行一次的 cron 作业运行。

#!/bin/bash 

NET_INTERFACE=eth0

CURRENT_IP=`/sbin/ifconfig $NET_INTERFACE | sed -n "/inet addr:.*255.255.25[0-5].[0-9]/{s/.*inet addr://; s/ .*//; p}"`

wget -q --delete-after "http://abc.co.uk/raspiUpdate.php?pi=1&ip=${CURRENT_IP}"

在 crontab 我有:

 *     *     *     *     *        /home/user/Scripts/script.sh

我哪里错了?

谢谢

4

1 回答 1

0

要解决此 cron 问题,请考虑以下几个步骤:

  1. 仔细检查您放入 crontab 中的脚本文件名:

    $ ls -lah  /home/user/Scripts/script.sh
    $ cat /home/user/Scripts/script.sh
    
  2. 检查该脚本是否可由安装 crontab 的用户执行。即,如果你使用 /etc/crontab,它应该可以由 root 执行,如果你使用

    $ crontab -e
    

    它应该可以由您的用户 ID 执行。

    实际上运行该脚本应该已经给你一个提示。

  3. 寻找 cron 提供的提示。根据您运行的发行版,cron 记录到的文件是不同的。对于 debian,它应该是 /var/log/syslog IIRC

如果您在任何地方都找不到错误消息,则很难判断出了什么问题。一般来说,如果我达到那个点,我会停下来睡觉或做其他事情。

[编辑] 当我返回时,我经常发现错误。:)

ps:

  1. 我最近在文件名中遇到了点问题。一些 cron 实现会忽略 /etc/cron.* 中文件名中带有点的文件。此处记录:http: //manpages.ubuntu.com/manpages/xenial/en/man8/cron.8.html作为 Debian 特定的。但我想我在 Fedora 上也遇到了这个问题。
于 2012-10-30T22:52:34.007 回答