bash Shell, at Befehl mit Skript?

5 Antworten

at -f script.bash >> ausgabe_script

at sorgt dafür, dass ein Befehl oder wie hier ein Skript zu einem bestimmten Zeitpunkt ausgeführt wird. Es führt nicht den Befehl aus. ausgabe_script enthält daher nicht die Ausgabe des Skripts sondern die Ausgabe von at und die ist leer. Da du keinen Zeitpunkt angibst, wird das Skript wahrscheinlich nie ausgeführt. Wo die Ausgabe landen würde, kann ich auf die Schnelle nicht sagen, vermutlich in meesages.log.

Woher ich das weiß:Hobby

Hallo

das Foto anbei ist der Inhalt meines Skriptes.

Wieso kannst Du nicht einfach die13 Zeilen richtig herher kopieren statt einen blöden Bildes das mindestens 5x mehr Platz verbraucht als der reine Code?!

#!/bin/bash

h=$(date +%H) #Hour
m=$(date +%M) #Minute
s=$(date +%S) #Second

time="Der aktuelle Zeitsteempel lautet:\n$h Uhr, $m Minuten, $Sekunden\n"
echo -e $time

echo Sie sind angemeldet als Benutzer: $USER
echo Sie arbeiten mit dem Rechner: $HOSTNAME
echo Ihr Heimatverzeichnis lautet: $HOME
echo Sie nutzen als Shell: $SHELL

Soll der Zeitstempel so umständlich aussehen?

Wieso nicht einen kompletten wie diesen:

time=$(date '+%H:%M:%S')

und am Ende noch ein:

exit 0

benutzen um das Script fehlerfrei zu beenden.

Du kannst das at auch so übergeben:

echo "sh deinscript.sh" | at 23:00 PM

Linuxhase

Woher ich das weiß:eigene Erfahrung – Ich benutze seit 2007 Linux und habe LPIC101 und LPIC102
ximix424 
Fragesteller
 27.12.2018, 17:48

Der Zeitstempel ist laut Aufgabenstellung so vorgegeben. Mein Ziel ist es, das Skript mittels at zu einem bestimmten Zeitpunkt in der Konsole auszugeben und gleichzeitig die Ausgabe in der Datei ausgabe_script zu speichern. Mit deinem Vorschlag "echo "sh deinscript.sh" | at 23:00 PM" geschieht keine Ausgabe des Zeitstempels, bzw. des Skriptes in die Konsole. Ich verstehe nicht warum? Sorry ich bin kein Linux Profi, eher ein Anfänger.

0
Linuxhase  27.12.2018, 22:24
@ximix424
geschieht keine Ausgabe des Zeitstempels, bzw. des Skriptes in die Konsole

Ich hab es nicht getestet sondern nur recherchiert. Studiere halt mal die Manpage wie man das Programm einsetzen kann.

Linuxhase

0

Verstehe das vieleicht falsch aber warum schreibst du die gewünschten Daten nicht einfach in eine Datei? Z.B. so:

echo Datum=%date% >> Y:\Log.txt

echo Zeit=%time% >> Y:\Log.txt

echo NÄCHSTER LOG >> Y:\Log.txt

wobei ich es jetzt beispielhaft nur mit Datum und Zeit gemacht habe und mit einem festen Pfad.

Woher ich das weiß:Berufserfahrung

Was sagen denn die Logdateien?

Zu cron:

Wie hast Du die crontab denn angelegt?

Und welchen Nutzernamen möchtest Du ausgeben? Für mich ergibt das wenig Sinn, es sei denn Du legst die Crontab als User-Crontab an. Dann aber mußt Du beachten, ob der Nutzer crons anlegen darf.

Zu 'at' kann ich weiter nichts sagen, da ich es nicht kenne ...

Okay entschulduge, beim at Befehl hab ich hier im Post die Uhrzeit vergessen. Also heißt das, dass ich die Ausgabe eines Skriptes mit at nur weiterleiten kann, in dem ich das ganze im Skript selbst ausführe?

Aber wenn ich es dann nur in die andere Datei weiterleite, wird es ja nicht mehr im Terminal ausgegeben oder?