У меня есть сценарий bash, который отлично работает из командной строки. После добавления его к корневым пользователям crontab (sudo crontab -e), я считаю, что он не запускается. Вот задача хрон:Сценарий OSX bash не работает от 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
Сценарий принадлежит корню, и, конечно, это исполняемый файл (766), и она существует на правильном пути.
Я не вижу запись в файле журнала, но я не уверен, что это правильный способ записи в файл журнала. Я пробовал несколько различных вариантов, в том числе:
syslog -s -k Facility com.apple.console \
Level Error \
Sender restartscript \
Message "Restart network script run"
Но ничего не записывается ни в какой журнал. Тем не менее, я ожидаю увидеть запись журнала для выполняемой задачи cron. Любые идеи? Thanks
проверки учетной записи электронной почты для 'root' и посмотреть, если какие-либо сообщения вывода/ошибки из этих заданий появляются там (вы должны увидеть некоторые, или еще что-то не так (или вы не говорит нам вся история ;-))). , Надеемся, что сообщение об ошибке сообщит вам, в чем проблема. Удачи. – shellter
Измените свою командную строку на '/Users/lorenzot/Documents/scripts/restart-net.sh || touch/tmp/cron_run.tmp' или аналогично, чтобы убедиться, что cron действительно выполнил задачу (или попытался). – codeforester
Честное слово, вот и вся история. Я не знаю, что еще я мог вам сказать. Заданы сценарий и cron. – Lazloman