online 1
gast (50)

/ Forum / Linux

LinuxLinux

Fragevon Anna... vom 21.08.2020, 21:38 Options

eine *.sh zeitgesteuert starten

hi,

kann man das mit dem betriebsystem eigenen mitteln bewerkstelligen das sich eine *.sh datei zu einem bestimmten zeitpunkt ausführt?

mfg


Antwort schreiben

Antwort 1 von Dr.Ma-Busen vom 21.08.2020, 21:54 Options

Moin!

Ja das kann man mit Cronjob machen.
http://de.wikibooks.org/wiki/Linux-Kompendium:_Crontab

MfG

Antwort 2 von Anna... vom 21.08.2020, 22:07 Options

ah danke,
versuche ich mal, wobei jetzt wenn ich das durchlese der at befehl eher das richtige für mich wäre.
na ich schau mal

mfg

Antwort 3 von Jaja vom 24.08.2020, 08:41 Options

der at befehl setzt den folgenden befehl aus und führt ihn erst zur angegebenen zeit aus.

das überlebt keinen neustart und wird auch nur ein einziges mal ausgeführt -ist also nicht was du suchst..

ja die cron jobs sehen kompliziert aus - ist aber eigentlich ganz einfach.. hilfe findest du auch auf deinen system nach eingabe von "man cron" und "man crontab". weiterhin gibt es im netz endlos s.g. howto zu cron .. googlwe nach howto cron. verstehst du eine anleitung nicht, hast du so alternativen die es anders erklären bis du es raffst ;)

alternativen zu cron wären startup scripte, di bei jedem systemstart ausgeführt werden. wenn deine anwendung immer nur dann ausgeführt werden sollen, wenn das system gestartet ist, wäre das die beste lösung (und einfachste)..

Antwort 4 von Anna... vom 26.08.2020, 20:25 Options

hi,

naja eigentlich möchte ich das unregelmässig immer mal wieder über nacht starten und der pc bleibt sowieso immer an.

den starte ich nur einmal pro woche neu wenn der gerade nicht am arbeiten ist.

den at befehl kann ich eingeben, kann ihn mir auch anzeigen lassen

ABER es wird nicht ausgefüht.

ich habe da irgendwo was von berechtigungen gelesen, kann das sein das ich das da irgendwo erst aktivieren muss?

danke mfg

Antwort 5 von Jaja vom 26.08.2020, 20:39 Options

hmm - eigentlich nicht.

1. setze deinen befehl mal in einfache quotes, also ' eventuell hilft das..

2. an sonsten sollte sowohl "at" als auch der gewünschte befehl mit den rechten deines nutzers audgeführt werden.. demnach darf der befehl auch nicht höhere rechte erwarten, wie z.b. root.

3. was du hoffentlich NICHT gemacht hast, ist die konsole zu schließen, denn das beendet die session am virtuellen terminal und der befehl wird natürlich nicht ausgeführt.
gib mal in einem terminal "jobs" ein - das sind auszuführende befehle, die noch nicht beendet sind. setze einen job hinein, z.b. "top &" (das & verschiebt den task in den hintergrund), schaue dir "jobs" an, in dem nun top auftaucht.
schließe das terminal, mache es wieder auf und gucke wieder per "jobs" nach - top is weg, weil beendet.

entweder benutzt du für diese sachen ein "echtes" terminal ([strg]-[alt]-[F1] bis [F6] sind konsolen, [F7] deine grafische oberfläche) oder du benutzt "screen", ein befehl um eine/mehrere session zu starten, die auch das schließen des terminals überleben..
screen benötigt aber ein bisschen einarbeitungszeit, lese und lerne "man screen", wenn es installiert ist.

Antwort 6 von Anna... vom 26.08.2020, 21:11 Options

entschuldige das ich auf das oben geschriebene nicht eingehe, aber das sind böhmische dörfer für mich.

also ich habe einfach eine konsole geöffnet und dann eingegeben

at –f test.sh 15:03

da lief aber nix, also habe ich um 15:05 in die immer noch geöffnete konsole

atq eingegeben.

da stand das dann auch da mit einer zahl vorne dran und weil da nix lief habe ich das mit
atrm gelöscht.

soweit der stand der dinge.

mfg

Antwort 7 von Jaja vom 26.08.2020, 21:31 Options

hmm..

kannst du test.sh "von hand" starten?
das wäre voraussetzung.

also ./test.sh sollte funktionieren, wenn nicht musst du mit

chmod a+x test.sh

dein script auch als ausführbar kennzeichnen.

Antwort 8 von Jaja vom 26.08.2020, 21:37 Options

aso.. hab das -f übersehen, dann is obiges geschwafel natürlich käse.. deine endung .sh hat mich irritiert, da das kennzeichen für ein script sein sollte.. hoffe in dieser datei steht in der ersten zeile nicht #! das wäre unzulassig, da ein scipt! obiges geschwafel würde dann wieder sinn machen, aber ohne -f!

also guck in deine test.sh, ob es ein script ist (erste zeile fängt mit #! an), wenn ja, dann test.sh mit chmod ausführbar machen und at ohne parameter -f starten.
wenn es kein script ist, schau doch mal ob deine systemzeit stimmt (befehl date) und poste mal was test.sh enthält.

Antwort 9 von Supermax vom 26.08.2020, 21:51 Options

AT (wie auch CRON) haben möglicherweise ein anderes Arbeitsverzeichnis als das Verzeichnis, in dem dein Script liegt; es ist daher empfehlenswert, den kompletten Pfad, also z.B. /home/USERNAME/test.sh als Parameter bei AT bzw. in der crontab anzugeben; wenn das Script auf externe Dateien zugreift, sollte im Script ebenfalls explizit mittels cd das Arbeitsverzeichnis gesetzt werden.

Antwort 10 von Jaja vom 26.08.2020, 21:56 Options

hmm.. ich merke grad das mein ausdruck nich so toll ist: ich erkläre es nochmal:

1. die datei test.sh soll also befehle enthalten, die ausgeführt werden sollen.
dabei kann es eine einfache liste dieser befehle sein, damnach steht in der ersten zeile schon der erste befehl.

in diesem fall ist dein kommando "at -f test.sh hh:mm" schon richtig, und ein anderes problem besteht.
nachdem du mit "date" die systemzeit+datum überprüft hast,
teste einfach mal at in dem einfach so "at hh:mm", es kommt ein neuer promt at> und du gibts was zum testen ein, also z.b. >>notify-send "test test test"<< drückst ein mal enter und drückst dann [strg]+[D], um die eingabe zu beenden. neuer job ist gesetzt und es sollte nun zur angegebenen zeit eine nachricht auf deinem desktop erscheinen mit "test test test".

2. wenn die datei test.sh so wie ihre endung es anzeigt ein script sein, also in der ersten zeile auch so was steht wie "#! /bin/sh" war dein befehl falsch..

zuerst hast du das script ausführbar zu machen mit "chmod a+x test.sh", danach testest du das script mit "./test.sh". klappt alles hast du 2 möglichkeiten.

a) du startest "at hh:mm" und gibtst beim neuen promt at> ein: ./test.sh und drückst nach 1x enter [strg]+[d].

b)du schreibst in eine neue datei (ich sag mal test2) in die erste zeile ./test.sh und speicherst das im selben verzeichnis wie test.sh
dann kannst du so starten "at -f test2 hh:mm".


so sollte das klappen.

Ähnliche Themen

win setup unter linux starten
roesi66  11.02.2007 - 41 Hits - 2 Antworten

Ich habe Ubuntu installiert und kann Win2k nicht mehr starten!
elpaschko  22.09.2007 - 39 Hits - 3 Antworten

Kann kein Knoppix starten!
MaLi  04.06.2008 - 113 Hits - 2 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 16:59:01 2026