Macos OSX bash脚本不从cron运行

Macos OSX bash脚本不从cron运行,macos,shell,cron,Macos,Shell,Cron,我有一个bash脚本,可以从命令行正常运行。在将它添加到根用户crontab(sudocrontab-e)之后,我发现它没有运行。下面是cron任务: 0,15,30,45 * * * * /Users/lorenzot/Documents/scripts/restart-net.sh 以下是脚本: #!/bin/bash echo "Net script" | logger -s >> /Library/Logs/netlog.log # Ping twice just t

我有一个bash脚本,可以从命令行正常运行。在将它添加到根用户crontab(sudocrontab-e)之后,我发现它没有运行。下面是cron任务:

0,15,30,45 * * * * /Users/lorenzot/Documents/scripts/restart-net.sh
以下是脚本:

#!/bin/bash

echo "Net script" | logger -s  >> /Library/Logs/netlog.log

# Ping twice just to be sure
/sbin/ping -c 2 8.8.8.8
/sbin/ping -c 2 8.8.8.8
if [ $? -ge 1 ]; then
echo "Network down :("

ifconfig en1 down
ifconfig en1 up
             exit 1
else
    echo "Network up! :)"
exit 0
fi
脚本由root所有,当然,它是可执行的(766),并且它确实存在于正确的路径中

我在日志文件中没有看到条目,但我不确定这是否是写入日志文件的正确方式。我尝试了几种不同的变体,包括:

syslog -s -k Facility com.apple.console \
                Level Error \
                            Sender restartscript \
Message "Restart network script run"
但任何日志都不会写入任何内容。不过,我希望看到cron任务的日志条目已经执行。 有什么想法吗?
谢谢

'logger-s`将消息的副本发送给stderr,而不是stdout。此外,您可以将消息作为参数传递,而不是通过stdin。试试这个:

logger -s "Net script" 2>> /Library/Logs/netlog.log

'logger-s'将消息的副本发送给stderr,而不是stdout。此外,您可以将消息作为参数传递,而不是通过stdin。试试这个:

logger -s "Net script" 2>> /Library/Logs/netlog.log

检查
root
的邮件帐户,查看是否有来自这些作业的任何输出/错误消息出现在那里(您应该看到一些,或者其他一些错误(或者您没有告诉我们全部情况;-)。希望错误消息会告诉您问题所在。祝你好运。将命令行更改为
/Users/lorenzot/Documents/scripts/restart-net.sh||touch/tmp/cron_run.tmp
或类似命令,以确保cron确实启动了任务(或尝试了)。老实说,这就是全部。我不知道还能告诉你什么。脚本和cron任务已发布。我在/tmp中添加了touch,但没有文件检查
root
的邮件帐户,并查看是否有来自这些作业的任何输出/错误消息出现在那里(您应该看到一些,或者其他一些错误(或者您没有告诉我们全部情况;-)。希望错误消息会告诉您问题所在。祝你好运。将命令行更改为
/Users/lorenzot/Documents/scripts/restart-net.sh||touch/tmp/cron_run.tmp
或类似命令,以确保cron确实启动了任务(或尝试了)。老实说,这就是全部。我不知道还能告诉你什么。脚本和cron任务已经发布。我添加了touch,但没有在/tmpThis文件中添加它!看起来它确实在运行,但是输出到了错误的地方。但经过进一步的研究,苹果似乎不赞成cron而赞成launchd。我将研究迁移到launchd。@user675712 launchd通常比cron更受欢迎,但cron仍然受支持,我希望它会存在很长一段时间。我不会担心迁移,直到/除非您看到启动的明显优势。这就成功了!看起来它确实在运行,但是输出到了错误的地方。但经过进一步的研究,苹果似乎不赞成cron而赞成launchd。我将研究迁移到launchd。@user675712 launchd通常比cron更受欢迎,但cron仍然受支持,我希望它会存在很长一段时间。我不会担心迁移,直到/除非您看到启动的明显优势。