aktuellen Zeitpunkt als Variableninhalt ändern

Du hast Probleme mit Deinem eMail-Programm, Webbrowser oder Textprogramm? Dein Lieblingsprogramm streikt?
Antworten
fischig
Beiträge: 3600
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

aktuellen Zeitpunkt als Variableninhalt ändern

Beitrag von fischig » 29.10.2022 14:29:47

Mit

Code: Alles auswählen

tesd=$(date +"%Y-%m-%d %T")
kann ich ja den aktuellen Systemzeitpunkt in die Variable tesd schreiben.
Wie füge ich dem Zeitpunkt in der Variablen, sagen wir 5 Minuten resp. 300 Sekunden unter Beibehaltung der Formatierung hinzu?

JTH
Moderator
Beiträge: 3014
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: aktuellen Zeitunkt als Variabelninhalt ändern

Beitrag von JTH » 29.10.2022 14:35:19

Mit -d (lang --date) kann man recht frei irgendwelche Zeitpunkte angeben. Für „in 5 Minuten“ etwa:

Code: Alles auswählen

~$ date -d '5 min'
2022-10-29T14:39:19 CEST
Manchmal bekannt als Just (another) Terminal Hacker.

fischig
Beiträge: 3600
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

Re: aktuellen Zeitunkt als Variabelninhalt ändern

Beitrag von fischig » 29.10.2022 14:43:36

Code: Alles auswählen

~$ date -d '5 min'
2022-10-29T14:39:19 CEST
ich weiß nicht, wie du das hingekriegt hast, bei mir kommt mit

Code: Alles auswählen

$ date -d '5 min'
das hier an:

Code: Alles auswählen

Sa 29. Okt 14:50:04 CEST 2022
. Die Formatierung ist mir schon wichtig.

JTH
Moderator
Beiträge: 3014
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: aktuellen Zeitunkt als Variabelninhalt ändern

Beitrag von JTH » 29.10.2022 14:53:21

Die Formatierung musst du extra angeben, also so, wenn ich mich nicht vertue:

Code: Alles auswählen

date -d "5 min" +"%Y-%m-%d %T"
Mein Rechner hat eine locale, bei der das ISO-Format aus meinem obigen Beitrag das Standarddatumsformat ist, deshalb der Unterschied.
Manchmal bekannt als Just (another) Terminal Hacker.

fischig
Beiträge: 3600
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

Re: aktuellen Zeitunkt als Variabelninhalt ändern

Beitrag von fischig » 29.10.2022 15:00:11

Du hast dich nicht vertan:

Code: Alles auswählen

date -d "5 min" +"%Y-%m-%d %T"
ist hier die Lösung! :THX:
(wir wollen ja systemd-run :twisted: nicht vegessen! :wink: )

JTH
Moderator
Beiträge: 3014
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: aktuellen Zeitunkt als Variabelninhalt ändern

Beitrag von JTH » 29.10.2022 18:30:30

fischig hat geschrieben: ↑ zum Beitrag ↑
29.10.2022 15:00:11
wir wollen ja systemd-run :twisted: nicht vegessen! :wink:
Mit dem geht das, was du, denke ich, vorhast, natürlich ganz direkt noch einfacher ;)

Code: Alles auswählen

systemd-run --on-active=5min echo "systemd rocks!"
führt das Kommando 5 Minuten später aus.
Manchmal bekannt als Just (another) Terminal Hacker.

tobo
Beiträge: 1964
Registriert: 10.12.2008 10:51:41

Re: aktuellen Zeitunkt als Variabelninhalt ändern

Beitrag von tobo » 29.10.2022 22:20:27

JTH hat geschrieben: ↑ zum Beitrag ↑
29.10.2022 14:53:21
Die Formatierung musst du extra angeben, also so, wenn ich mich nicht vertue:

Code: Alles auswählen

date -d "5 min" +"%Y-%m-%d %T"
Mein Rechner hat eine locale, bei der das ISO-Format aus meinem obigen Beitrag das Standarddatumsformat ist, deshalb der Unterschied.
Was ist denn das für eine locale, die dieses Format liefert? Ich habe dasselbe Format, aber ich habe dazu "date_fmt "%F %T"" angepasst in /usr/share/i18n/locales/en_US.

fischig
Beiträge: 3600
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

Re: aktuellen Zeitpunkt als Variableninhalt ändern

Beitrag von fischig » 29.10.2022 23:30:07

Übersteht systemd-run den Schlafzustand

Code: Alles auswählen

rtcwake -u -m mem -t [Weckzeitpunkt]
?

JTH
Moderator
Beiträge: 3014
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: aktuellen Zeitpunkt als Variableninhalt ändern

Beitrag von JTH » 29.10.2022 23:37:56

tobo hat geschrieben: ↑ zum Beitrag ↑
29.10.2022 22:20:27
Was ist denn das für eine locale, die dieses Format liefert?
Mit der (nenn ich mal so) „Pseudo“-Locale en_DK bekommt man das ISO-Datumsformat.

fischig hat geschrieben: ↑ zum Beitrag ↑
29.10.2022 23:30:07
Übersteht systemd-run den Schlafzustand […]?
Ja, müsste es. Nachtrag: Zumindest, wenn du nicht einen exakten Zeitpunkt mit --on-calendar übergibst. Effektiv legt das Kommando temporäre systemd-Timer- und -Service-Dateien unter /run ab. Und dessen Inhalt bleibt bis zu einem Shutdown oder Reboot erhalten, auch über Standby oder Ruhezustand hinweg.

Wenn du willst, dass dein systemd-run-Job weggeworfen wird, wenn das System zwischenzeitlich in den Standby gegangen ist, könntest du ein

Code: Alles auswählen

--timer-property=Conflicts=sleep.target
beim systemd-run-Aufruf ergänzen. Dadurch wird der dahintersteckende Timer gestoppt und gelöscht, sobald das System schlafen geht.
Manchmal bekannt als Just (another) Terminal Hacker.

tobo
Beiträge: 1964
Registriert: 10.12.2008 10:51:41

Re: aktuellen Zeitpunkt als Variableninhalt ändern

Beitrag von tobo » 30.10.2022 00:04:25

JTH hat geschrieben: ↑ zum Beitrag ↑
29.10.2022 23:37:56
tobo hat geschrieben: ↑ zum Beitrag ↑
29.10.2022 22:20:27
Was ist denn das für eine locale, die dieses Format liefert?
Mit der (nenn ich mal so) „Pseudo“-Locale en_DK bekommt man das ISO-Datumsformat.

Code: Alles auswählen

~$ locale
LANG=en_DK.UTF-8
LANGUAGE=en_US:en
LC_CTYPE=en_DK.UTF-8
LC_NUMERIC=en_DK.UTF-8
LC_TIME=en_DK.UTF-8
LC_COLLATE=en_DK.UTF-8
LC_MONETARY=en_DK.UTF-8
LC_MESSAGES=en_DK.UTF-8
LC_PAPER=en_DK.UTF-8
LC_NAME=en_DK.UTF-8
LC_ADDRESS=en_DK.UTF-8
LC_TELEPHONE=en_DK.UTF-8
LC_MEASUREMENT=en_DK.UTF-8
LC_IDENTIFICATION=en_DK.UTF-8
LC_ALL=
~$ date
2022-10-29T23:55:39 CEST
~$
Ich glaube, ich bin beeindruckt...

Antworten