Crontab 无法使用简单的 bash 脚本

Crontab 无法使用简单的 bash 脚本

我不太确定我做错了什么。我正在尝试创建一个 cron 作业来运行 bash 脚本。bash 脚本基本上会检查我的文件(ip.address.txt),找到我的公共 IP 地址,然后ip.address.txt再次检查并比较两者。如果它们不同,则我的 IP 已更改,我应该通过电子邮件收到通知。

该脚本可以手动运行,但是,当我尝试将其添加到 cron 作业时,我收到一封电子邮件,提示Delivery to the following recipient failed permanently。我正在运行 Ubuntu 14.04.3。我尝试使用命令crontab -e“执行我的第一个 cron 作业”。在文件末尾(有关 的所有内容都已被注释掉),我有:

PATH=/usr/sbin:/usr/bin:/sbin:/bin
* * * * * /home/jj/Desktop/IP/publicIP.sh

这是一个独立桌面,正在尝试执行用户 cron 作业。感谢您帮助我进一步了解 cron 作业。我还将发布 bash 脚本。

#!/bin/bash

#Give crontab a path to follow according to what i have read ?????
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/jj/Desktop/IP/


#Get last saved IP address
ip1=$( cat /home/jj/Desktop/IP/ip.address.txt )

#This is the command to see public IP address
dig +short myip.opendns.com @resolver1.opendns.com > ip.address.txt

#This is the updated IP adress currently in use
ip2=$( cat /home/jj/Desktop/IP/ip.address.txt )

#Check to see if it is the same IP
    if [ $ip1 != $ip2 ]; then

#If the IP is different, the IP has changed. Notify me via email
    cat /home/jj/Desktop/IP/ip.address.txt | mail -s "IP Address" [email protected]

#EOF
fi

答案1

代替

> ip.address.txt

> /home/jj/Desktop/IP/ip.address.txt

相关内容