![如果電腦已開啟並且已連接到 Internet,我如何每天執行一次 Python 腳本?](https://rvso.com/image/170282/%E5%A6%82%E6%9E%9C%E9%9B%BB%E8%85%A6%E5%B7%B2%E9%96%8B%E5%95%9F%E4%B8%A6%E4%B8%94%E5%B7%B2%E9%80%A3%E6%8E%A5%E5%88%B0%20Internet%EF%BC%8C%E6%88%91%E5%A6%82%E4%BD%95%E6%AF%8F%E5%A4%A9%E5%9F%B7%E8%A1%8C%E4%B8%80%E6%AC%A1%20Python%20%E8%85%B3%E6%9C%AC%EF%BC%9F.png)
如果我的電腦已開啟並且已連接到互聯網,我希望每天執行一個 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
,然後就完成了。
ping
如果 4 秒內收到回應,它將網域並執行 python。選擇最適合您需求的網域。我提供的只是示例,但對於一般的互聯網訪問來說它們可能就足夠了。
如果沒有收到資料包,它將在 60 秒後重試。
做記錄:script
將以 root 身分運行。如果這對您來說是個問題,您可以按照中提供的步驟進行操作AskUbuntu 中的這個答案以普通用戶身份運行它。
答案2
您也可以使用簡單的 GUI 應用程序,例如卡拉姆或者時鐘(適用於 KDE 桌面)。將其設定為按所需的時間表調用您的腳本,例如,我使用它來每日備份我的儲存庫。而且它不需要任何超級或根訪問權限。
編輯:這可能假設用戶已登入並保持其會話處於活動狀態,我對此並不 100% 確定。