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 anacron
anstelle von verwenden cron
. /etc/cron.daily
Erstellen 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 script
und fertig.
Wenn innerhalb von 4 Sekunden eine Antwort eingeht, werden ping
Domä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 script
wird 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.