gpt4 book ai didi

linux - 在 cron 中运行 bash 脚本

转载 作者:太空宇宙 更新时间:2023-11-04 04:11:26 26 4
gpt4 key购买 nike

我有以下 bash 脚本:

!/bin/bash
# script to send simple email
#Wait 5 seconds
#sleep 05
# email subject
SUBJECT="SUBJECT"
# Email To ?
EMAIL="EMAIL"
# Email text/message
MYIP=$(curl http://ipecho.net/plain)
LASTIP=$(head -n 1 /home/ubuntu/myip.txt)
echo "Last IP:" $LASTIP
echo "Current IP:" $MYIP
#Check if IPs are the same
if [[ "$MYIP" == "$LASTIP" ]]; then
echo "IP hasn't changed. Do nothing."
else
sendemail -f $EMAIL -t $EMAIL -u $SUBJECT -m $MYIP -s smtp.gmail.com -o tls=yes -xu username -xp password
echo $MYIP > myip.txt
fi

当我尝试在命令行中运行它时,它工作得很好。当我将它包含在“crontab -e”中时,问题就开始了,如下所示:“* * * * */home/ubuntu/myip.sh”。

那就不行了。看来是sendmail 运行不正常。当我执行以下操作时: tail -f/var/log/syslog

Sep 18 21:48:02 gpuserver sendmail[18665]: r8J1m1gO018665: from=ubuntu, size=314, class=0, nrcpts=1, msgid=<201309190148.r8J1m1gO018665@gpuserver>, relay=ubuntu@localhost
Sep 18 21:48:02 gpuserver sendmail[18665]: r8J1m1gO018665: to=ubuntu, ctladdr=ubuntu (1000/1000), delay=00:00:01, xdelay=00:00:00, mailer=relay, pri=30314, relay=[127.0.0.1] [127.0.0.1], dsn=4.0.0, stat=Deferred: Connection refused by [127.0.0.1]

有什么想法吗?

最佳答案

当您从命令行运行脚本时,您正在利用当前的环境。 Cron 没有该信息...所以您应该从命令行执行的操作是:

env > me

然后编辑脚本并在脚本开头包含 ./me。这样您的 cron 任务将在相同的环境中运行。

关于linux - 在 cron 中运行 bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18885135/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com