So starten Sie den PC jeden Morgen zu einer festgelegten Zeit und führen das Python-Programm aus

Jeden Morgen analysierte ich die Aktienkursbewegung am Vortag und bereitete eine Umgebung für die Ausführung eines Programms vor, das die Ergebnisse automatisch per E-Mail sendet. Ich werde zusammenfassen, was ich getan habe, bis ich das Programm automatisch starten konnte.

Verfahren

  1. Installieren Sie Ubuntu in Partitionen
  2. Setzen Sie das Standard-Boot-Betriebssystem mit dem Bootloader auf Ubuntu
  3. Stellen Sie das BIOS so ein, dass es jeden Morgen zur angegebenen Zeit startet
  4. Erstellen Sie ein Shell-Skript, um Python in /etc/profile.d/ zu starten.
  5. Erstellen Sie ein Shell-Skript, das nach der Ausführung heruntergefahren werden soll
  6. Geben Sie der Datei die Ausführungsberechtigung
  7. Einstellungen für den normalen Start

Tatsächlicher Fluss

Installieren Sie Ubuntu in Partitionen

Es ist vom Betriebssystem getrennt, das normalerweise für einen stabilen Betrieb verwendet wird. Ich habe Gparted verwendet, um ungefähr 200 GB Ubuntu von der 2-TB-Festplatte zu installieren, die ich für die Datenspeicherung verwendet habe. (* Seien Sie vorsichtig, wenn Sie eine Festplatte partitionieren, die bereits Daten enthält, da die Gefahr einer Datenbeschädigung besteht.)

Ubuntu https://www.ubuntulinux.jp/download Gparted http://www.gigafree.net/system/drive/gparted.html

Installationsvorgang usw. entfällt

Standard-Boot-Betriebssystem für Ubuntu mit Bootloader

Wenn Ubuntu installiert ist, wird auch ein Bootloader namens GRUB installiert. Ändern Sie daher die GRUB-Einstellungen und setzen Sie das Standard-Boot-Betriebssystem auf Ubuntu. Grundsätzlich sollte Ubuntu jedoch die Standardeinstellung sein. Wenn Sie also nicht drei oder mehr Betriebssysteme installieren oder einen anderen Bootloader verwenden, bleibt Ubuntu unverändert.

Stellen Sie ein, dass im BIOS jeden Morgen zur angegebenen Zeit gestartet wird

Die Methode ändert sich je nach BIOS, und es gibt einige, die nicht automatisch gestartet werden können. In meiner Umgebung war dies jedoch wie folgt. IMG.jpg

Ich konnte den Tag nicht angeben, daher habe ich nur die Uhrzeit angegeben. Samstags und sonntags gibt es nichts Besonderes zu tun, aber ich habe einen Kompromiss geschlossen, indem ich den Tag im Python-Programm festgelegt und samstags und sonntags heruntergefahren habe ...

Erstellen Sie ein Shell-Skript, um Python in /etc/profile.d/ zu starten.

Unter Linux sollten Sie die Datei, die Sie ausführen möchten, beim Start des Betriebssystems zuerst in /etc/profile.d/ ablegen. Ist es der Startordner in Windows?

Zunächst habe ich die Berechtigung, eine Datei wie folgt zu erstellen

$ cd /etc/profile.d/
$ sudo gedit auto_start.sh

Das Shell-Skript lautet wie folgt

auto_start.sh


#!/bin/sh
cd "Geben Sie den Pfad zur Python-Datei ein"
python analysis.py

Sie können Python direkt ausführen, indem Sie den absoluten Pfad angeben, ohne hier mit CD zu wechseln. Wenn Sie dies jedoch tun, werden das CSV-Speicherziel im Python-Programm und der relative Pfad, der beim Importieren mehrerer Dateien behandelt wird, / usw. Es wird basierend auf /profile.d/ behandelt. Daher konnte ich ein solches Problem vermeiden, indem ich das aktuelle Verzeichnis in den Ordner der Zieldatei verschob und dann ausführte.

Wenn Sie dies jedoch tun, ist das aktuelle Verzeichnis beim Starten des Terminals der Ordner der Python-Datei, sodass Sie es am Ende ordnungsgemäß wiederherstellen müssen.

auto_start.sh


#!/bin/sh
cd "Geben Sie den Pfad zur Python-Datei ein"
python analysis.py
cd

Erstellen Sie ein Shell-Skript, das nach der Ausführung heruntergefahren werden soll

Führen Sie das folgende Shell-Skript aus, um es herunterzufahren.

shutdown.sh


#!/bin/sh
sudo shutdown -h now

Dies allein funktioniert jedoch nicht. Bei der normalen Verwendung des Befehls sudo muss der Benutzer das Kennwort manuell eingeben. Dies macht die Automatisierung bedeutungslos, sodass der Befehl zum Herunterfahren keine Kennworteingabe mehr erfordert.

Bearbeiten Sie dort die sudo-Konfigurationsdatei. (* Natürlich ist es eine schreckliche Tat, also auf eigenes Risiko)

$ sudo gedit /etc/sudoers

Fügen Sie am Ende der Datei den folgenden Inhalt hinzu.

/etc/sudoers


"Nutzername" ALL=(ALL) NOPASSWD:/sbin/shutdown -h now

Danach können Sie dieses Shell-Skript aufrufen, nachdem die Zielverarbeitung auf der Python-Seite abgeschlossen ist.

analysis.py


import subprocess

#Was du machen willst

subprocess.call("./shutdown.sh")

Geben Sie der Datei die Ausführungsberechtigung

Nachdem wir die Dateien erstellt haben, erteilen Sie der Shell-Skriptdatei und der Python-Datei die Ausführungsberechtigung. Andernfalls wird eine Fehlermeldung angezeigt, dass Sie bei der automatischen Ausführung keine Berechtigung haben.

$ cd /etc/profile.d/
$ sudo chmod a+x auto_start.sh
$ cd "Pfad zur Python-Datei"
$ sudo chmod a+x analysis.py
$ sudo chmod a+x shutdown.sh

Einstellungen für den normalen Start

Selbst wenn Sie sich zur Wartung anmelden, ist es ein Problem, wenn der Prozess ausgeführt und sogar heruntergefahren wird. Vermeiden Sie dies.

Geben Sie die Zeit mit Python an

Bei meinem Programm beginnt es jeden Morgen um 8:00 Uhr und die Verarbeitung ist um 8:30 Uhr abgeschlossen. Daher versuche ich, die Verarbeitung nur dann auszuführen, wenn sie innerhalb dieser Zeit liegt.

analysis.py


import datetime
d = datetime.datetime.today()

if (d.hour == 8) and (0 <= d.minute <= 30):
    #Was du machen willst
    #Prozess herunterfahren

Wenn Sie nur das Herunterfahren vermeiden möchten

$ sudo shutdown -c

Schließlich

Da es für den persönlichen Gebrauch ist, gibt es viele Orte, an denen der Mangel an Wissen gewaltsam ausgeglichen wird. Wenn jemand einen besseren Weg kennt, würde ich es begrüßen, wenn Sie mich unterrichten könnten.

Recommended Posts

So starten Sie den PC jeden Morgen zu einer festgelegten Zeit und führen das Python-Programm aus
So stoppen Sie das Programm bis zu einem bestimmten Datum und einer bestimmten Uhrzeit in Python
So starten Sie die erste Projektion
So starten Sie einen einfachen WEB-Server, der CGI von PHP und Python ausführen kann
Wie man einen bestimmten Prozess am Anfang und Ende der Spinne mit Scrapy einfügt
Starten eines mit Jupyter Notebook erstellten Python-Programms
So ermitteln Sie mit Python den Unterschied zwischen Datum und Uhrzeit in Sekunden
[Python] So öffnen Sie zwei oder mehr Dateien gleichzeitig
Ich möchte gleichzeitig einen Musik-Player erstellen und Musik ablegen
Ein Programm, das von Python zu einem bestimmten Zeitpunkt eine feste E-Mail-Menge sendet
Überlegen Sie, wie Sie Python auf Ihrem iPad programmieren können
Python Gibt die Funktion an, die ausgeführt werden soll, wenn das Programm endet
Aufgaben zu Beginn eines neuen Python-Projekts
So führen Sie einen Befehl mit einem Unterprozess in Python aus
So testen Sie eine Funktion, die die aktuelle Zeit enthält, mit Freezegun in Python
[Mac] Eine supereinfache Möglichkeit, Systembefehle in Python auszuführen und die Ergebnisse auszugeben
[C / C ++] Übergeben Sie den in C / C ++ berechneten Wert an eine Python-Funktion, um den Prozess auszuführen, und verwenden Sie diesen Wert in C / C ++.
Führen Sie das Programm aus, ohne eine Python-Umgebung zu erstellen! !! (Erste Schritte mit Google Colaboratory)
So führen Sie eine Python-Datei an einer Windows 10-Eingabeaufforderung aus
So führen Sie ein Python-Programm in einem Shell-Skript aus
So mischen Sie einen Teil der Python-Liste (at random.shuffle)
Verwendung der Methode __call__ in der Python-Klasse
Erstellen Sie eine Python-Umgebung und übertragen Sie Daten auf den Server
So erhalten Sie den letzten (letzten) Wert in einer Liste in Python
So schreiben Sie eine Meta-Klasse, die sowohl Python2 als auch Python3 unterstützt
Ausführen externer Shell-Skripte und -Befehle in Python
Eine einfache Möglichkeit, die in Python benötigte Zeit anzuzeigen und sie intelligenter zu verbessern
[Python] Ein Programm, um die Anzahl der Äpfel und Orangen zu ermitteln, die geerntet werden können
Ich möchte Informationen von fstab am ssh-Verbindungsziel abrufen und den Befehl ausführen
Bestimmen Sie das Datums- und Uhrzeitformat mit Python und konvertieren Sie es in Unixtime
Ich möchte die Ausführungszeit aufzeichnen und ein Protokoll führen.
So bestimmen Sie die Existenz eines Selenelements in Python
[Einführung in Python] So teilen Sie eine Zeichenfolge mit der Funktion split
So erhalten Sie mithilfe der Mastodon-API Follower und Follower von Python
So überprüfen Sie die Speichergröße einer Variablen in Python
[Python] So erhalten Sie den ersten und den letzten Tag des Monats
So erstellen Sie eine Überwachungskamera (Überwachungskamera) mit Opencv und Python
[Einführung in Python] Wie verwende ich den Operator in in der for-Anweisung?
So überprüfen Sie die Speichergröße eines Wörterbuchs in Python
[Python3] Definition eines Dekorators, der die Ausführungszeit einer Funktion misst
Schreiben Sie ein Programm, das das Programm missbraucht und 100 E-Mails sendet
Der Weg zur Installation von Python und Flask auf einem Offline-PC
So senden Sie eine Anfrage mit Python an die DMM (FANZA) -API
[Einführung in Python] Verwendung des Booleschen Operators (und ・ oder ・ nicht)
[Python] Ein Programm, das den Inhalt der Liste nach links dreht
So zeigen Sie Bytes in Java und Python auf die gleiche Weise an
So erhalten Sie die Python-Version
Lesen von Standardeingabe- oder Variablendateien gleichzeitig wie der Befehl Einfügen in Python
So geben Sie eine Zeichenfolge in Python ein und geben sie unverändert oder in die entgegengesetzte Richtung aus.
[Python Kivy] So erhalten Sie den Dateipfad durch Ziehen und Ablegen
[Python] So legen Sie die Position und Größe der Fensteranzeige von matplotlib fest
Teilen und Verarbeiten eines Datenrahmens mithilfe der Groupby-Funktion
[Python] Was ist ein formales Argument? So stellen Sie den Anfangswert ein
[Einführung in Python] Was ist der Unterschied zwischen einer Liste und einem Taple?
So schreiben Sie den richtigen Shebang in Perl-, Python- und Ruby-Skripten
[Python] Erklärt anhand eines konkreten Beispiels, wie die Bereichsfunktion verwendet wird
[Python] Ein Programm, das die Anzahl der gepaarten Socken berechnet