![]() |
ShellScript Ubuntu If Condition
Liebe User,
ich muss ein kleines ShellScript für Ubuntu schreiben und kenne mich leider damit nicht sehr gut aus. Folgende Anforderung: Wenn in einem bestimmten Ordner die letzte Änderung an irgendeiner Datei länger als 10 Minuten zurück liegt soll ein E-Mail verschickt werden. Soweit bin ich: 1: #!/bin/bash 2: log_path="/home/abc/Desktop/prog/log_dir" 3: find $log_path -exec stat \{} --printf="%y\n" \; | sort -n -r | head -n 1 4: DATE=`date +%Y.%m.%d-%H:%M:%S` 5: # IF CONDITION ??? 6: echo "$DATE: LOG OF PROG DID NOT CHANGE IN THE LAST 10 MINUTES" | mail -s "PANIC E-MAIL" eine@mail.adresse Zeile 3 liefert das letzte Änderungsdatum Zeile 4 liefert das aktuelle Datum Was mir jetzt fehlt ist die IF-Condition. Also ich möchte in Zeile 5 das letzte Änderungsdatum aus Zeile 3 mit dem aktuellen Datum aus Zeile 4 vergleichen. Wenn hier mehr als 10 Minuten unterschied sind, soll Zeile 6 ausgeführt werden. Ich habe leider keinen Ahnung wie ich hier ran gehen soll, finde auch keine Beispiele in Google :-( |
AW: ShellScript Ubuntu If Condition
Code:
Die Sprache heißt übrigens Bash, nicht ShellScript.
if [[ $(find $log_path -cmin +10) ]]; then
echo "Sende E-Mail" fi |
AW: ShellScript Ubuntu If Condition
Zitat:
![]() Die zusätzlichen Bash-Features sind natürlich angenehmer als die Grundausstattung. |
AW: ShellScript Ubuntu If Condition
Hallo ferby,
hat zwar nichts mit dem Thema zu tun, aber gewöhne dir bitte die Backticks (`) gleich wieder ab! Die Dinger sind unleserlich und lassen sich nicht schachteln. Benutze stattdessen lieber das Konstrukt
Code:
Das ist erheblich lesbarer, lässt sich schachteln, und man bekommt keine Probleme beim Kopieren irgendwelchen Codes aus irgendwelchen Quellen (z.B. Webseiten); es gab schon Fälle, in denen die Leute statt des Backticks (`) das Apostroph/einfache Anführungszeichen (') benutzten und sich wunderten, warum die Sache dann nicht funktioniert.
$(befehl)
MfG Dalai |
AW: ShellScript Ubuntu If Condition
Zitat:
Der Hinweis diente außerdem dazu, besser nach Lösungen googlen zu können. Ich finde deutlich einfacher Lösungen, wenn ich weiß, wie Dinge korrekt benannt werden. Ich will dem TE nicht unterstellen, falsch gegooglet zu haben, aber es mag ja möglich sein, dass er nach "Ubuntu ShellScript datum vergleich" sucht, was natürlich wenig sinnvolles hervorbringt. Mit "bash date comparison" findet man hingegen eine ganze Menge. In diesem Sinne ist Bash (imho!) der beste Suchbegriff. Mit sh, zsh oder ksh kommst du nicht so weit. |
AW: ShellScript Ubuntu If Condition
Super, danke für eure Hilfe.
Meine finale Lösung: #!/bin/bash log_path="/home/bla/Desktop/bla/log_dir/" if [ ! "$(find $log_path -mmin -10)" ]; then echo "LOG OF bla DID NOT CHANGE" | mail -s "PANIC E-MAIL bla" "bla@bla.eu" fi Ps. Ich dachte immer Bash ist der Name der Shell. Wußte nicht, dass Bash auch der Name für die Sprache ist. |
AW: ShellScript Ubuntu If Condition
![]() Ist also eine Shell, und als solches akzeptiert sie Shell-Scripte. Sherlock |
AW: ShellScript Ubuntu If Condition
![]() Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:32 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz