Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Bash For Schleife mit Sekundenabfrage

Frage Entwicklung Batch & Shell

Mitglied: Pollekowski

Pollekowski (Level 1) - Jetzt verbinden

18.05.2010, aktualisiert 14:49 Uhr, 9034 Aufrufe, 5 Kommentare

Ein Script soll alle 10 Sekunden einen Befehl ausführen.

Hallo, suche eine Möglichkeit unter Debian Bash mittels einer FOR Schleife alle 10 Sekunden etwas auszuführen.

Ich dachte dabei so in die Richtung "$(date | cut -c 19) -eq 0" dann tue etwas. Das ganze hab ich als funktionierendes Konstrukt mit Funktionen und If Abfrage ( if [ $(date | cut -c 19) -eq 0 ] ), da gibt es aber irgendwo ein Memory Leak und ich versuchs dehalb auf FOR umzustellen.

Wer hat ne Idee?

01.
#!/bin/bash 
02.
for 0 in $(date | cut -c 19) 
03.
	do 
04.
	echo $date 
05.
done
Mitglied: Korrn
18.05.2010 um 14:56 Uhr
Hallo,

mit folgendem Konstrukt kannst Du ein Pause von 10 Sekunden zwischen die Anweisungen bringen, damit ist aber jeder Durchlauf 10 Sekunden plus Zeitbedarf der Anweisungen lang:

01.
while true 
02.
do 
03.
 # Anweisungen 
04.
 sleep 10 
05.
done
Ansonsten must du mit zwei verschachtelten Schleifen arbeiten:
01.
while true 
02.
do 
03.
 # Anweisungen 
04.
while [ ! "$(date +%S |cut -c 2) == "0" ] 
05.
 do 
06.
  continue 
07.
 done 
08.
done
Oh, und da ist ist kein "Memory Leak", versuch mal 'man date' und 'man for'.
Bitte warten ..
Mitglied: it-frosch
18.05.2010 um 15:02 Uhr
Hallo Pollekowski,

warum nimmst du kein cron job der alle 10sek dein Script ausführt?
Die Ausführung deines Scripts sollte natürlich wenige als 10 s dauern.
Bitte warten ..
Mitglied: Pollekowski
18.05.2010 um 15:29 Uhr
Das Script soll 24 h lang laufen und alle 10 Sekunden einen Ping absetzen. Incl. Logfile schreiben und wenn Timeout kommt in drei Eskalationsstufen Email, SMS und einen Asterisk Befehl aufrufen. Da ist das leider keine Option
Bitte warten ..
Mitglied: Pollekowski
18.05.2010 um 15:38 Uhr
Hallo Korrn#, hab Deinen Rat beherzigt und das Script mal folgendermasen eingedampft.

01.
while [ $(date +%H%M%S) -ne 235959 ] ; do # Script beendet sich um 23Uhr 59Min 59Sek 
02.
 
03.
        echo Sekunde ist $(date | cut -c 19) 
04.
        if [ $(date | cut -c 19) -eq 0 ] # If second is EQU 00, 10, 20, 30, 40, 50 run ping 
05.
        then 
06.
                VAR_TIMESTAMP=$(date | cut -c 12-19) 
07.
                ping $VAR_HOSTIP -c 1 -W 2 > $VAR_TMP 
08.
                VAR_LATENCY=$(cut -s -d= -f4 $VAR_TMP) 
09.
                echo $VAR_TIMESTAMP $VAR_LATENCY >> $VAR_LOG 
10.
                sleep 8 
11.
        else 
12.
                sleep 0.777 
13.
        fi 
14.
done
Jetzt funktioniert es wie gewünscht und ich bekomme ein sauberes Logfile alle 10 Sekunden mit Uhrzeit und Latency versehen.

Trotzdem zeigt mir TOP an, dass der Speicher für dieses Script sehr langsam aber stetig wächst. Woran kann das liegen?

Gruß Polle
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Bash sqlplus oder Bash Fehler?
Frage von MarabuntaBatch & Shell7 Kommentare

Hallo, da ich sehr eingeschränkt in Bash bin, brauche ich hier etwas Hilfe. Was stimmt mit dem EOF nicht? ...

Batch & Shell
Bash in Shell ok, Über Bash Aufgerufen error
gelöst Frage von Loip104Batch & Shell2 Kommentare

Servus, Ich habe grade ein SourceServer Start script für CS:GO etwas für mich angepasst, Insbesondere habe ich SU geadded. ...

Batch & Shell
Bash scripting
gelöst Frage von HighShooterBatch & Shell3 Kommentare

Hallo, für meinem Server auf Debian 8 soll ich einen Script schreiben; der sollte folgendes beinhalten: eine Datei von ...

Batch & Shell
Batch Schleife als FOR-SCHLEIFE
gelöst Frage von mp2711Batch & Shell2 Kommentare

Mit den FOR-Schleifen habe ich mich leider bislang zu selten auseinander gesetzt, aber da ich sonst gerade nicht weiter ...

Neue Wissensbeiträge
Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 11 StundenBatch & Shell8 Kommentare

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Humor (lol)

"gimme gimme gimme": Automatischer Test stolpert über Easter Egg im man-Tool

Information von Penny.Cilin vor 13 StundenHumor (lol)6 Kommentare

Interessant, was man so alles als Easter Egg implementiert. Ist schon wieder Ostern? "gimme gimme gimme": Automatischer Test stolpert ...

MikroTik RouterOS

Mikrotik - Lets Encrypt Zertifikate mit MetaROUTER Instanz auf dem Router erzeugen

Anleitung von colinardo vor 1 TagMikroTik RouterOS8 Kommentare

Einleitung Folgende Anleitung ist aus der Lage heraus entstanden das ein Kunde auf seinem Mikrotik sein Hotspot Captive Portal ...

Sicherheit

Sicherheitslücke in HP-Druckern - Firmware-Updates stehen bereit

Information von BassFishFox vor 1 TagSicherheit1 Kommentar

Ein weiterer Grund, dass Drucker keinerlei Verbindung nach "auswaerts" haben sollen. Unter Verwendung spezieller Malware können Angreifer aus der ...

Heiß diskutierte Inhalte
Windows Server
RDP macht Server schneller???
Frage von JaniDJWindows Server17 Kommentare

Hallo Community, wir betrieben seit geraumer Zeit diverse virtuelle Maschinen und Server mit Windows Server 2012. Leider haben wir ...

Windows 10
Windows 10 dunkler Bildschirm nach Umfallen
Frage von AkcentWindows 1015 Kommentare

Hallo, habe hier einen Windows 10 Rechner der von einem User umgefallen wurde (Beine übers Knie, an den PC ...

Windows 10
Bitlocker nach Verschlüsselung nicht mehr aufrufbar!
gelöst Frage von alexlazaWindows 1013 Kommentare

Hallo, ich besitze ein HP ZBook 17 G4 mit einem Windows 10 Pro Betriebssystem. Bei diesem Problem handelt sich, ...

Batch & Shell
Neuste Datei via PowerShell kopieren
gelöst Frage von kaiuwe28Batch & Shell11 Kommentare

Hallo zusammen, ich hatte mir mit Hilfe der Suche im Forum einen kleinen Code von colinardo rausgesucht und versucht ...