AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

ShellScript Ubuntu If Condition

Ein Thema von ferby · begonnen am 10. Jul 2016 · letzter Beitrag vom 11. Jul 2016
Antwort Antwort
ferby

Registriert seit: 15. Aug 2004
Ort: Wien
841 Beiträge
 
Delphi 2010 Enterprise
 
#1

ShellScript Ubuntu If Condition

  Alt 10. Jul 2016, 10:50
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
  Mit Zitat antworten Zitat
Benutzerbild von Valle
Valle

Registriert seit: 26. Dez 2005
Ort: Karlsruhe
1.223 Beiträge
 
#2

AW: ShellScript Ubuntu If Condition

  Alt 10. Jul 2016, 11:22
Code:
if [[ $(find $log_path -cmin +10) ]]; then
    echo "Sende E-Mail"
fi
Die Sprache heißt übrigens Bash, nicht ShellScript.
Valentin Voigt
BOFH excuse #423: „It's not RFC-822 compliant.“
Mein total langweiliger Blog
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#3

AW: ShellScript Ubuntu If Condition

  Alt 10. Jul 2016, 12:21
Die Sprache heißt übrigens Bash, nicht ShellScript.
Das ist doch etwas eng gesehen. Es gibt ja noch genug andere Shells als Bash und POSIX-kompatible Shellscripte sollten auf dem meiseten davon davon laufen
Die zusätzlichen Bash-Features sind natürlich angenehmer als die Grundausstattung.
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.680 Beiträge
 
Delphi 5 Professional
 
#4

AW: ShellScript Ubuntu If Condition

  Alt 10. Jul 2016, 12:44
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:
$(befehl)
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.

MfG Dalai
  Mit Zitat antworten Zitat
Benutzerbild von Valle
Valle

Registriert seit: 26. Dez 2005
Ort: Karlsruhe
1.223 Beiträge
 
#5

AW: ShellScript Ubuntu If Condition

  Alt 10. Jul 2016, 12:51
Die Sprache heißt übrigens Bash, nicht ShellScript.
Das ist doch etwas eng gesehen. Es gibt ja noch genug andere Shells als Bash und POSIX-kompatible Shellscripte sollten auf dem meiseten davon davon laufen
Die zusätzlichen Bash-Features sind natürlich angenehmer als die Grundausstattung.
Sein Shebang sagt explizit /bin/bash, also ist es auch Bash.

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.
Valentin Voigt
BOFH excuse #423: „It's not RFC-822 compliant.“
Mein total langweiliger Blog
  Mit Zitat antworten Zitat
ferby

Registriert seit: 15. Aug 2004
Ort: Wien
841 Beiträge
 
Delphi 2010 Enterprise
 
#6

AW: ShellScript Ubuntu If Condition

  Alt 10. Jul 2016, 21:36
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.

Geändert von ferby (10. Jul 2016 um 21:44 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.763 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: ShellScript Ubuntu If Condition

  Alt 11. Jul 2016, 09:34
https://de.wikipedia.org/wiki/Bash_(Shell)

Ist also eine Shell, und als solches akzeptiert sie Shell-Scripte.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Benutzerbild von Valle
Valle

Registriert seit: 26. Dez 2005
Ort: Karlsruhe
1.223 Beiträge
 
#8

AW: ShellScript Ubuntu If Condition

  Alt 11. Jul 2016, 12:22
https://en.wikipedia.org/wiki/Bash_(Unix_shell)

Zitat:
Bash is a Unix shell and command language
Ihr sucht dich auch nicht nach Turbo Pascal wenn ihr Fragen zu Delphi habt, oder?
Valentin Voigt
BOFH excuse #423: „It's not RFC-822 compliant.“
Mein total langweiliger Blog
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz