Gibt es eine Möglichkeit, ein Bash-Skript täglich automatisch auszuführen, dh ich möchte, dass das Bash-Skript jeden Tag beim ersten Öffnen eines Shell-Terminals ausgeführt wird?Ausführen eines Bash-Skripts beim ersten Öffnen der Shell
Danke!
Gibt es eine Möglichkeit, ein Bash-Skript täglich automatisch auszuführen, dh ich möchte, dass das Bash-Skript jeden Tag beim ersten Öffnen eines Shell-Terminals ausgeführt wird?Ausführen eines Bash-Skripts beim ersten Öffnen der Shell
Danke!
Bash hat zwei Dateien, aus der Sicht der Nutzer erstellen, die „Setup“, wenn es gestartet wird, durchführen:
.bash_profile
- Diese Datei wird ausgeführt, wenn Sie eine interaktive Login-Shell öffnen. Diese Datei kann in bestimmten Distributionen oder Konfigurationen auch den Namen .profile
haben. .profile
wird normalerweise für nicht-Bash-spezifische Konfigurationselemente verwendet. Seien Sie sich auch bewusst, dass .bash_login
, .bash_profile
verhindert, dass diese Datei verwendet wird, obwohl es ansonsten äquivalent ist. .bash_profile
ist Standard..bashrc
- Diese Datei wird für alle anderen Bash-Instanzen ausgeführt. Beachten Sie, dass es üblich ist, dass Personen .bashrc
von .bash_profile
anrufen, um Konsistenz zu schaffen.Beim Anmelden wird eine Login-Shell generiert. via SSH, Telnet, an einer Konsole, etc. Sie können auch dazu zwingen, den Start einer Login-Shell (Forcierung Bash_profile) durch Starten einer Shell unter su
wie so verarbeitet werden:
su - username
Hier zeigt der Bindestrich das sollte als Login-Shell verarbeitet werden.
Keine von beiden scheint jedoch die richtige Antwort für Ihre Frage zu sein, es sei denn, Sie sind sicher, dass Sie sich einmal am Tag und nur einmal am Tag anmelden.
Ein besserer Ansatz in Ihrem Fall wäre die Verwendung der cron
. Mit Crontab können Sie Jobs so planen, dass sie in jedem gewünschten Intervall ausgeführt werden können. Für die tägliche Ausführung, würden Sie wahrscheinlich eine Zeile wie so konfiguriert werden sollen:
0 5 * * * /home/user/script
Dies würde die Benutzer-Skript verursacht jeden Tag um 05.00 Uhr auszuführen. Die Spalten sind:
0 5 * * *
^^^^^------ Day of week
^^^ ^-------- Month of year
^^^---------- Day of month
^ ^------------ Hour of day
^-------------- Minute of hour
Jedes dieser Felder kann auch eine durch Kommas getrennte Liste oder sogar einen arithmetischen Ausdruck darstellen. Im folgenden Beispiel wird das Skript viermal während der 5-Uhr-Stunde ausgeführt:
Wenn das Skript nur beim Öffnen des Shell-Terminals ausgeführt werden soll, fügen Sie es zur Datei ~/.bashrc
, /etc/bash.bashrc
oder /etc/bashrc
hinzu. Dies wird immer dann ausgeführt, wenn eine interaktive Nicht-Login-Shell gestartet wird.
Wenn Sie es täglich auszuführen, einen Cron für sie in /etc/crontab
oder crontab -e
@andlrc korrigiert. Danke –
Beachten Sie, dass es anders ist, es in '~' oder in '/ etc' hinzuzufügen. Ersteres bezieht sich nur auf den Benutzer '~' bezieht sich auf, während '/ etc' auf alle Benutzer zutrifft. – fedorqui
Beachten Sie, dass abhängig von der Bash-Implementierung Ihrer Distribution die Datei bash_profile nur als "Profil" bezeichnet werden kann. –
Guter Punkt @JustinE –
Sie können Ihre bashrc-Datei auch "quellen", indem Sie Folgendes eingeben: '. ~/.bash_profile' oder 'source ~ /.bash_profile', um die Datei zu "aktivieren". –