컴퓨터가 켜져 있고 인터넷에 연결되어 있는 경우 Python 스크립트를 하루에 한 번 어떻게 실행할 수 있나요?

컴퓨터가 켜져 있고 인터넷에 연결되어 있는 경우 Python 스크립트를 하루에 한 번 어떻게 실행할 수 있나요?

내 컴퓨터가 켜져 있고 인터넷에 연결되어 있다면 매일 Python 스크립트를 실행하고 싶습니다. 내가 어떻게 해? 나의 노력은

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

그런데 문제는 그 시간에 내 컴퓨터가 켜져 있는지, 인터넷에 접속되어 있는지 알 수 없다는 것이다.

답변1

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완료됩니다.

ping4초 안에 응답이 수신되면 도메인을 실행 하고 Python을 실행합니다. 귀하의 요구에 가장 적합한 도메인을 선택하세요. 제가 제공하는 것은 단지 예일 뿐이지만 일반적인 인터넷 액세스에는 충분할 것입니다.

패킷이 수신되지 않으면 60초 후에 다시 시도됩니다.


필기 해: script루트로 실행됩니다. 이것이 문제가 되는 경우, 다음에 제시된 단계를 따를 수 있습니다.AskUbuntu에서 이 답변일반 사용자로 실행합니다.

답변2

다음과 같은 간단한 GUI 앱을 사용할 수도 있습니다.칼람또는k시계(KDE 데스크탑에서 사용 가능) 원하는 일정에 따라 스크립트를 호출하도록 설정했습니다. 예를 들어 저장소를 매일 백업하는 데 사용하고 있습니다. 그리고 슈퍼 또는 루트 액세스가 필요하지 않습니다.

편집: 이는 사용자가 로그인되어 있고 세션이 활성 상태로 유지된다고 가정할 수 있지만 이에 대해 100% 확신할 수는 없습니다.

관련 정보