Skript – die neusten Beiträge

Wie muss ein Pingscript zu Fehlererkennung unter Linux aussehen, das bei Systemstart gestartet wird und ein Log schreibt?

Moin an alle,

ich habe da so ein kleines Projekt vor:
Da unser DSL ab und an aussetzt, da wir - so meine Vermutung - zu wenig Netzwerktraffic erzeugen (es scheint sich zumindest teils zu stabilisieren, wenn man dauerhaft sekündich Pings an Google sendet) und diese DSL-Fehler - so zumindest meine Vermutung - dann auf Dauer auch teils die Fritzbox zum Durchdrehen bringen, würde ich gerne zwei Raspberry Pis der ersten Generation mit Ubuntu bespielen und auf jedem ein Skript mit folgenden Anforderungen laufen lassen:

  • Startet automatisch bei Systemstart.
  • Pingt jede Sekunde eine IP-Adresse oder URL an (über eine Variable des Skripts festlegbar).
  • Dokumentierten jeden Pingfehler (Paket verloren, nicht erreichbar, etc.) in eine ".txt"-Datei.
  • Speichert die ".txt"-Datei mindestens einmal täglich zu einer bestimmten End-Uhrzeit, zu der auch das Skript pausiert wird (Zeit über eine Variable im 24h-Format festlegbar oder via Ubuntu regelbar?).
  • Beginnt eine neue ".txt"-Datei täglich zu einer bestimmten Anfangs-Uhrzeit, zu der auch das Skript neu gestartet wird (Zeit über eine Variable im 24h-Format festlegbar oder via Ubuntu regelbar?).
  • Name der ".txt"-Datei bzw. deren Namensschema am besten per Variable festlegbar.

Der eine Raspberry Pi soll an der Fritzbox direkt angeschlossen werden und die Fritzbox und "Google.de" anpingen (je eine eigene Instanz des Skripts mit je eigenen ".txt"-Logs).
Der andere Raspberry Pi soll am entferntesten Punkt im Netzwerk angeschlossen werden und "Google.de" und den ersten Raspberry Pi anpingen (je eine eigene Instanz des Skripts mit je eigenen ".txt"-Logs).

Ich erhoffe mir damit eine Übersicht der Ausfälle der DSL-Verbindung und der Spinnereinen der Fritzbox.
Die Netzwerkaussetzer sollen dann an den Internetanbieter gesendet werden. Der Rest dient als Nachweis ob die DSL-Aussetzer und die Aussetzer der Fritzbox wirklich zusammen hängen, wie ich das vermute.

Die Fritzbox mit samt Switches, Accesspoints, etc. lasse ich zudem ab sofort über Wochen-Zeitschaltuhren einmal täglch komplett rebooten, in der Hoffnung, dass das ein wenig Abhilfe schafft.

Ich hoffe Ihr könnt mir helfen, da ich leider keine Ahnung habe, wie ich das anstellen soll.
Ich habe zwar das hier für Windows gefunden, doch der Blogautor konnte mir bei Linux auch nicht weiterhelfen:
https://www.andysblog.de/windows-dauerping-mit-protokollierung-von-fehlern

Schonmal danke an alle Tipps und Hilfestellungen!

Server, Internet, WLAN, Internetverbindung, Programm, Netzwerk, IT, programmieren, DSL, FRITZ!Box, Informatik, IP-Adresse, LAN, Logik, Netzwerktechnik, Netzwerkverbindung, Programmiersprache, Router, skript, WLAN-Router, Ping, Repeater, LAN-Kabel, WLAN-Repeater, Raspberry Pi, Raspberry, Pinger

Was macht der Windows Taskplaner (Aufgabenplanung) mit einem Termin am 29. Februar (wenn kein Schaltjahr ist)?

Der Plan ist, unter Windows einen geplanten Task (Aufgabenplanung) am 29. jedes Monats auszuführen... quasi "Monatsabschluß".

Jetzt stellt sich mir die Frage, ob diese Aufgabe am Ende des Monats Februar überhaupt ausgeführt wird, sofern nicht gerade Schaltjahr ist.

gedanklicher Ansatz 1:
Aus "digitaler" Sicht existiert der 29.02. zwar, verschwindet aber mit der Länge Null zwischen dem 28.02. um 23:59 Uhr und dem 01.03. um 00:00 Uhr; die geplante Aufgabe wird demnach um 00:00 Uhr am 01.03. ausgeführt bzw. "nachgeholt".

gedanklicher Ansatz 2:
Der 29.02. existiert nicht, also wird die geplante Aufgabe auch nicht ausgeführt.
Die Ausführung erfolgt am 29.01. und dann erst wieder am 29.03., 29.04. usw., es sei denn, es ist gerade Schaltjahr.

Ich habe leider gerade kein Test-System, auf dem ich mich trauen könnte, mal eben Datum und Uhrzeit so dermaßen zu verrappeln und es einfach mal durchzuspielen, ohne Gefahr zu laufen, daß nicht irgendwelche Software-Lizenzen oder Datenbanken plötzlich einen Herz-Kasper erleiden, um mir dann nach der abschließenden Richtigstellung vorzuwerfen, ich würde sie wohl veralbern wollen, und den Betrieb gänzlich verweigern... nur weil ich mal ein bisschen am Datum gespielt hab.

Ja, das Ganze könnte man umgehen, indem man einfach den 28. des Monats oder den 01. des Folgemonats ansetzt... wäre mir auch am Liebsten, würde ich normalerweise auch so machen, ist allerdings für diesen einen gerade vorliegenden Fall keine Option.
Oder wahlweise auch einen zusätzlichen Task am 01. des Monats, der prüft, ob der Task am vergangenen 29. gelaufen ist oder nicht.
Oder man prüft am 01. des Folgemonats, ob im vorherigen Monat überhaupt ein 29. existierte.
So oder so müßte man hierbei schon mindestens 2 Aufgaben planen; eine um zu prüfen, ob die andere gelaufen ist oder nachgeholt werden muß.

Eine Handvoll Leute, denen ich heute diese Frage gestellt habe, kamen leider auch nur mit Antworten wie
· Laß es doch einfach... mach es am 28. oder am 01. und gut ist!
· Ich glaube, daß läuft dann am 01.03. um 00:00 Uhr, aber sicher bin ich mir nicht.
· Wenn kein Schaltjahr ist, läuft der Task nicht. So einfach ist das.

Und jetzt interessiert mich die Antwort auf die Frage erst recht!

Vielleicht weiß ja jemand von euch aus 1. Hand (oder kann eine verbindliche Quelle nennen, wo's steht), was unter Windows tatsächlich an einem solchen 29. passiert.

Ich hatte ja noch die Stille Hoffnung, Windows würde mir eine kleine Popup-Warnung o.ä. anzeigen, wenn ich versuche eine Aufgabe auf "monatlich, am 29." zu setzen... aber leider nein.

Computer, Windows, Backup, Datensicherung, skript, Termin, Aufgabenplanung, Schaltjahr

Wieso klappt das PowerShell Skript nicht?

Hallo

Ich habe nachfolgendes Skript. Das will irgendwie nicht. Ich möchte ein Netzlaufwerk mappen, dass auch nach dem Neustarten wieder hier ist.

Es muss irgendwo einen Fehler sein, der ich einfach nicht sehe.

Danke für die Hilfe im Voraus!

<#

Eventuell muss vor der Ausführung die PowerShell Policy umgeändert werden.

PowerShell als Admin starten, untenstehnden Code ausführen und dann das Skript.

Set-ExecutionPolicy unrestricted CurrentUser

#>

#Log
Start-Transcript -Path $HOME\desktop\NLW-MAP-LOG.txt

#Benutzerdaten Abfragen

<#
$user = Read-Host "Benutezrname eingeben"
$pass = Read-Host "Passwort eingeben" |ConvertTo-SecureString -AsPlainText -Force
$cred = New-Object System.Management.Automation.PsCredential($user,$pass)
#>

$cred = Get-Credential -Message "Bitte mit dem Benutzername + Passwort anmelden"

#Ordner

<#
ACHTUNG - FOLGENDE ORDNER HABEN GLEICHE LAUFWERKSBUCHSTABEN:
FabianFSL = W
Workaut = W
Workaut Informatik = Z
Koordination Weiterbildung = Z
Entwicklung Weiterbildung = U
AA Kommunikation = U
AA Z APW = Z

UNBEDINGT VORHER PRÜFEN OB DAS FÜR DEN BENUTZER PASST, ANSONSTEN MANUELL ÜBER New-PSDrive EIN EIGENER BUCHSTABE ZUWEISEN!!
#>

$aajbuchhaltung = 'New-PSDrive -Name "J" -Root "\\192.168.34.96\AA J Buchhaltung" -Persist -PSProvider FileSystem -Credential $cred'
$gdc = 'New-PSDrive -Name "T" -Root "\\192.168.34.96\Gian Duri" -Persist -PSProvider "FileSystem" -Credential $cred'
$glerwweitert = 'New-PSDrive -Name "O" -Root "\\192.168.34.96\GL erweitert" -Persist -PSProvider FileSystem -Credential $cred'
$uhome = 'New-PSDrive -Name "P" -Root "\\192.168.34.96\home" -Persist -PSProvider FileSystem -Credential $cred'
$admin = 'New-PSDrive -Name "R" -Root "\\192.168.34.96\workaut Admin" -Persist -PSProvider FileSystem -Credential $cred'
$it = 'New-PSDrive -Name "Z" -Root "\\192.168.34.96\Workaut ICT" -Persist -PSProvider FileSystem -Credential $cred'

$ExclDrives = ('C', 'D')
Get-PSDrive -PSProvider FileSystem | Where-Object {$ExclDrives -notcontains $_.Name} | Remove-PSDrive

<#

Kopieren und Vorname Nachname gemäss Benutzername erstezen.

Invoke-Expression muss bei jedem da stehen, danach $ordnername durch Name siehe oben erstezen.

elseif ($ced.username -eq 'Vorname Nachname') 
   {
       Invoke-Expression $ordnername
   }
#>

if ($cred.username -eq 'userA')
   {
       Invoke-Expression $gdc
       Invoke-Expression $uhome
       Invoke-Expression $admin
       Invoke-Expression $it
   }

   elseif ($cred.username -eq 'userB') 
   {
       Invoke-Expression $aajbuchhaltung

   }

Stop-Transcript

LG calgia

Computer, Technik, Fehler, programmieren, blind, skript, PowerShell

Meistgelesene Beiträge zum Thema Skript