Wie kann ich ein Python-Skript einmal täglich ausführen, wenn der Computer eingeschaltet ist und über eine Internetverbindung verfügt?

Wie kann ich ein Python-Skript einmal täglich ausführen, wenn der Computer eingeschaltet ist und über eine Internetverbindung verfügt?

Ich möchte jeden Tag ein Python-Skript ausführen, wenn mein Computer eingeschaltet ist und mit dem Internet verbunden ist. Wie kann ich das tun? Mein Aufwand ist

00 14 * * * python3 /home/jaakko/.config/spyder-py3/temp.py

Das Problem ist jedoch, dass ich nicht weiß, ob mein Computer zu dieser Zeit eingeschaltet ist und ob er Zugriff auf das Internet hat.

Antwort1

Sie sollten anacronanstelle von verwenden cron. /etc/cron.dailyErstellen Sie in eine Datei (ich nenne sie script) mit folgendem Inhalt:

#!/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

Machen Sie es ausführbar chmod +x scriptund fertig.

Wenn innerhalb von 4 Sekunden eine Antwort eingeht, werden pingDomänen erstellt und Python ausgeführt. Wählen Sie die Domänen aus, die Ihren Anforderungen am besten entsprechen. Die von mir angegebenen Domänen sind nur Beispiele, aber für den allgemeinen Internetzugang werden sie wahrscheinlich ausreichen.

Wenn kein Paket empfangen wird, wird es in 60 Sekunden erneut versucht.


Beachten: Der scriptwird als Root ausgeführt. Wenn das ein Problem für Sie ist, können Sie die Schritte indiese Antwort in AskUbuntuum es als normaler Benutzer auszuführen.

Antwort2

Sie können auch einfache GUI-Apps verwenden wiekalarmoderkUhr(verfügbar mit dem KDE-Desktop). Richten Sie es so ein, dass Ihr Skript nach gewünschtem Zeitplan aufgerufen wird. Ich verwende es beispielsweise, um meine Repositories täglich zu sichern. Und es erfordert keinen Super- oder Root-Zugriff.

Bearbeiten: Dies setzt möglicherweise voraus, dass der Benutzer angemeldet ist und seine Sitzung aktiv hält. Da bin ich mir nicht 100 % sicher.

verwandte Informationen