私はコマンドラインからうまく動作するbashスクリプトを持っています。 rootユーザーのcrontab(sudo crontab -e)に追加した後、実行されないことがわかります。ここでのcronタスクは次のとおりです。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
スクリプトはrootが所有し、もちろん、それは(766)、実行可能であり、それは正しいパスに存在しません。
ログファイルにエントリが表示されませんが、これがログファイルに書き込む正しい方法であるかどうかはわかりません。
syslog -s -k Facility com.apple.console \
Level Error \
Sender restartscript \
Message "Restart network script run"
何もログに書き込まれません。それにもかかわらず、私は実行されたcronタスクのログエントリを見ることが予想されます。 アイデア ありがとう
'root'のメールアカウントをチェックして、これらのジョブから任意の出力/エラーメッセージがあなたには、いくつかを見なければならない(そこに登場している、または他の何かが間違っている(または、あなたが私たちに言っていないかどうかを確認一部始終 ;-) ) )。 。うまくいけば、エラーメッセージが問題の内容を伝えます。がんばろう。 – shellter
コマンドラインを '/Users/lorenzot/Documents/scripts/restart-net.sh 'に変更してください。 touch/tmp/cron_run.tmp'またはそれに類するものを使用して、実際にcronがタスクを開始したことを確認してください(または試行しました)。 – codeforester
正直、それは全部の話です。私は他に何を教えていいのか分かりません。スクリプトとcronタスクが投稿されました。 – Lazloman