コンピューターの電源が入っていてインターネットに接続されている場合は、毎日Pythonスクリプトを実行したいのですが、どうすればよいですか?私の努力は
00 14 * * * python3 /home/jaakko/.config/spyder-py3/temp.py
しかし、問題は、自分のコンピューターがその時間にオンになっているかどうか、そしてインターネットにアクセスできるかどうかがわからないことです。
anacron
の代わりにcron
を使用する必要があります。 /etc/cron.daily
で、次の内容のファイル(script
と呼びます)を作成します。
#!/bin/sh
while true; do
for Host in www.ieee.com www.stackexchange.com; do
if ping -w 4 $Host; then
python3 /home/jaakko/.config/spyder-py3/temp.py
exit 0
fi
done
sleep 60
done
chmod +x script
で実行可能にすると、完了です。
ping
ドメインを実行し、4秒以内に応答を受信した場合はpythonを実行します。ニーズに最適なドメインを選択してください。私が提供するドメインは単なる例ですが、一般的なものです。インターネットアクセスはおそらく十分でしょう。
パケットが受信されない場合、60秒後に再試行されます。
注意してください:script
はルートとして実行されます。それが問題になる場合は、 AskUbuntuのこの回答 に示されている手順に従って、通常のユーザーとして実行できます。
kalarmやkclock(KDEデスクトップで利用可能)のような単純なGUIアプリを使用することもできます。希望のスケジュールでスクリプトを呼び出すように設定します。たとえば、リポジトリを毎日バックアップするために使用しています。また、スーパーアクセスやルートアクセスは必要ありません。
編集:これは、ユーザーがログインしてセッションをアクティブにしたことを前提としている可能性がありますが、それについて100%確信はありません。