Wie man mit einem Bash-Skript Absturzdateien unter MacOS entdeckt

Die Systemstabilität ist für IT-Experten von entscheidender Bedeutung, insbesondere für diejenigen, die mehrere Geräte verwalten oder MSP (Managed Service Provider)-Dienste anbieten. Die Gewährleistung eines reibungslosen Gerätebetriebs ohne unerwartete Abstürze kann Ausfallzeiten verhindern, die Produktivität aufrechterhalten und die Benutzerzufriedenheit steigern.

In diesem Guide wird ein einfaches, aber leistungsfähiges Skript zur Entdeckung von Absturzdateien unter MacOS vorgestellt. Wenn IT-Experten dieses Skript verstehen und implementieren, können sie Systemprobleme proaktiv verwalten und effektiv beheben.

Kontext

Systemabstürze können ein Hinweis auf zugrundeliegende Hardware- oder Software-Probleme sein. Unter macOS werden Absturzberichte erstellt und in bestimmten Verzeichnissen gespeichert, um die Diagnose der Absturzursache zu ermöglichen. Diese Berichte liegen in verschiedenen Dateiformaten vor, wie z. B. .ips, .panic und .crash, und enthalten jeweils unterschiedliche Detailinformationen zu den Vorfällen.

Für IT-Experten und MSPs kann ein Tool, das automatisch nach diesen Absturzberichten sucht, viel Zeit und Mühe sparen. Dieses Skript bietet eine unkomplizierte Lösung, um alle Absturzdateien zu identifizieren, die innerhalb der letzten 180 Tage erstellt wurden, sodass ein rechtzeitiges Eingreifen und eine Lösung möglich sind.

Das Skript zur Entdeckung von Absturzdateien unter MacOS

#!/usr/bin/env bash

# Description: Exits with a 1 if any crash files were created in the last 180 days. Be it .ips, .panic, or .crash under /Library/Logs/DiagnosticReports.
#
# Release Notes: Initial Release
# By using this script, you indicate your acceptance of the following legal terms as well as our Terms of Use at https://www.ninjaone.com/terms-of-use.
# Ownership Rights: NinjaOne owns and will continue to own all right, title, and interest in and to the script (including the copyright). NinjaOne is giving you a limited license to use the script in accordance with these legal terms. 
# Use Limitation: You may only use the script for your legitimate personal or internal business purposes, and you may not share the script with another party. 
# Republication Prohibition: Under no circumstances are you permitted to re-publish the script in any script library or website belonging to or under the control of any other software provider. 
# Warranty Disclaimer: The script is provided “as is” and “as available”, without warranty of any kind. NinjaOne makes no promise or guarantee that the script will be free from defects or that it will meet your specific needs or expectations. 
# Assumption of Risk: Your use of the script is at your own risk. You acknowledge that there are certain inherent risks in using the script, and you understand and assume each of those risks. 
# Waiver and Release: You will not hold NinjaOne responsible for any adverse or unintended consequences resulting from your use of the script, and you waive any legal or equitable rights or remedies you may have against NinjaOne relating to your use of the script. 
# EULA: If you are a NinjaOne customer, your use of the script is subject to the End User License Agreement applicable to you (EULA).

if [[ "${testForAppCrashes}" == "true" ]]; then
    ipsFiles=($(find "/Library/Logs/DiagnosticReports" -type f -name "*.ips" -mtime -180))
    for item in "${ipsFiles[@]}"; do
        echo "[Warn] Found ${item} ips file!"
    done
fi

panicFiles=($(find "/Library/Logs/DiagnosticReports" -type f -name "*.panic" -not -name "*.contents.panic" -mtime -180))
crashFiles=($(find "/Library/Logs/DiagnosticReports" -type f -name "*.crash" -mtime -180))

for item in "${panicFiles[@]}"; do
    echo "[Error] Found ${item} panic file!"
done

for item in "${crashFiles[@]}"; do
    echo "[Error] Found ${item} crash file!"
done

if [ ${#ipsFiles[@]} -gt 0 ] || [ ${#panicFiles[@]} -gt 0 ] || [ ${#crashFiles[@]} -gt 0 ]; then
    exit 1
else
    echo "No crash files found."
    exit 0
fi

 

Greifen Sie auf über 300 Skripte im NinjaOne Dojo zu.

Zugang erhalten

Detailansicht

Das Skript ist in Bash geschrieben und führt die folgenden Hauptfunktionen aus:

  1. Umgebung einrichten: Die ‘shebang’-Zeile gibt den Interpreter des Skripts an und stellt sicher, dass es mit den entsprechenden Umgebungseinstellungen ausgeführt wird.
  2. Beschreibung und Versionshinweise: Die Kommentare geben einen kurzen Überblick über den Zweck des Skripts und seine Versionsgeschichte.
  3. Bedingte Prüfung auf Anwendungsabstürze: Wenn die Umgebungsvariable ‘testForAppCrashes’ auf ‘true’ gesetzt ist, sucht das Skript nach .ips-Dateien (die auf Anwendungsabstürze hinweisen), die in den letzten 180 Tagen erstellt wurden, und listet sie auf.
  4. Nach Panik- und Absturzdateien suchen: Diese Befehle suchen nach .panic- und .crash-Dateien, mit Ausnahme von Dateien mit dem Namen ‘*.contents.panic’, innerhalb des angegebenen Zeitrahmens.
  5. Protokollierung entdeckter Dateien: Das Skript gibt Warn- und Fehlermeldungen für jede gefundene Datei aus und gibt den Benutzer:innen sofortiges Feedback.
  6. Beendungsstatus basiert auf Erkenntnissen: Je nachdem, ob Absturzdateien gefunden wurden, wird das Skript mit Status 1 (bei Problemen) oder 0 (bei keinen Problemen) beendet.

Potenzielle Anwendungsfälle

Fallstudie: Proaktives IT-Management

Ein IT-Experte, der eine Vielfalt von Mac-Computern in einer Unternehmensumgebung verwaltet, könnte dieses Skript verwenden, um regelmäßig zu prüfen, ob es in letzter Zeit zu Abstürzen gekommen ist. Indem sie dieses Skript täglich über einen Cron-Job laufen lassen, können sie sicherstellen, dass sie sofort über neue Absturzberichte informiert werden. Dies ermöglicht eine schnelle Fehlerbehebung, minimiert Ausfallzeiten und gewährleistet die Zuverlässigkeit des Systems.

Vergleiche

Skript vs. manuelle Prüfung

Bei der manuellen Suche nach Absturzberichten muss man zu den entsprechenden Verzeichnissen navigieren und die Dateien prüfen, was zeitaufwändig und fehleranfällig sein kann. Dieses Skript automatisiert den Prozess und gewährleistet Konsistenz und Genauigkeit.

Skript vs. kommerzielle Tools

Während es kommerzielle Tools gibt, die eine umfassende Systemüberwachung bieten, stellt dieses Skript eine kostengünstige, kompakte Lösung zur Erkennung von Abstürzen dar, die sich besonders für kleinere IT-Umgebungen oder spezielle Anwendungsfälle eignet, in denen eine vollwertige Überwachungslösung nicht gerechtfertigt ist.

FAQs

F: Wie kann ich dieses Skript ausführen?

A: Speichern Sie das Skript in einer Datei, machen Sie es mit chmod +x filename.sh ausführbar und führen Sie es mit ./filename.sh aus.

F: Was passiert, wenn ich nach Abstürzen in einem anderen Zeitraum suchen möchte?

A: Ändern Sie den Parameter -mtime -180 auf die gewünschte Anzahl von Tagen.

F: Kann dieses Skript zur Entdeckung von Absturzdateien unter MacOS auch auf Nicht-macOS-Systemen verwendet werden?

A: Nein, dieses Skript ist speziell für dieses Betriebssystem konzipiert.

Folgen

Die regelmäßige Ausführung dieses Skripts kann helfen, wiederkehrende Absturzmuster zu erkennen, sodass IT-Experten potenzielle Probleme angehen können, bevor sie eskalieren. Die frühzeitige Erkennung von Abstürzen kann größere Systemausfälle verhindern und für optimale Leistung und Benutzerzufriedenheit sorgen.

Empfehlungen

  • Automatisieren Sie die Ausführung: Planen Sie die Ausführung des Skripts in regelmäßigen Abständen mit Cron-Jobs.
  • Integrieren Sie es mit Überwachungs-Tools: Kombinieren Sie dieses Skript mit anderen Überwachungslösungen, um einen umfassenden Ansatz zu erhalten.
  • Überprüfen Sie die Protokolle regelmäßig: Überprüfen Sie regelmäßig die Ausgabeprotokolle, um sicherzustellen, dass alle Probleme umgehend behoben werden.

Abschließende Überlegungen

Die Aufnahme dieses Skripts in Ihr IT-Management-Toolkit kann Ihre Fähigkeit, die Systemstabilität zu bewahren und Probleme präventiv zu lösen, erheblich verbessern. Tools wie NinjaOne können diese Prozesse weiter rationalisieren, indem sie eine einheitliche Plattform für die Überwachung und Verwaltung mehrerer Geräte bieten. Durch den Einsatz solcher Tools können IT-Experten dafür sorgen, dass sie für alle auftretenden Herausforderungen gerüstet sind und einen reibungslosen und zuverlässigen Betrieb aufrechterhalten.

Nächste Schritte

Der Aufbau eines effizienten und effektiven IT-Teams erfordert eine zentralisierte Lösung, die als einheitliches Tool zur Bereitstellung von IT-Dienstleistungen fungiert. NinjaOne ermöglicht es IT-Teams, alle Geräte zu überwachen, zu verwalten, zu sichern und zu unterstützen, unabhängig vom Standort, ohne dass eine komplexe Infrastruktur vor Ort erforderlich ist.

Erfahren Sie mehr über NinjaOne Remote Script Deployment, sehen Sie sich eine Live-Tour an oder starten Sie Ihre kostenlose Testversion unserer NinjaOne Plattform.

Kategorien:

Das könnte Sie auch interessieren

×

Sehen Sie NinjaOne in Aktion!

Mit dem Absenden dieses Formulars akzeptiere ich die Datenschutzerklärung von NinjaOne.

NinjaOne Allgemeine Geschäftsbedingungen für Skripte

Indem Sie unten auf die Schaltfläche “Ich akzeptiere” klicken, erklären Sie Ihr Einverständnis mit den folgenden rechtlichen Bedingungen sowie mit unseren Nutzungsbedingungen:

  • Eigentumsrechte: NinjaOne besitzt und wird weiterhin alle Rechte, Titel und Interessen an dem Skript (einschließlich des Urheberrechts) behalten. NinjaOne gewährt Ihnen eine eingeschränkte Lizenz zur Nutzung des Skripts in Übereinstimmung mit diesen rechtlichen Bedingungen.
  • Einschränkung der Nutzung: Sie dürfen das Skript nur für Ihre legitimen persönlichen oder internen Geschäftszwecke verwenden und es nicht an Dritte weitergeben.
  • Verbot der Wiederveröffentlichung: Sie sind unter keinen Umständen berechtigt, das Skript in einer Skriptbibliothek, die einem anderen Softwareanbieter gehört oder von diesem kontrolliert wird, erneut zu veröffentlichen.
  • Gewährleistungsausschluss: Das Skript wird “wie gesehen” und “wie verfügbar” bereitgestellt, ohne jegliche Garantie. NinjaOne gibt keine Versprechen oder Garantien, dass das Skript frei von Fehlern ist oder dass es Ihre speziellen Bedürfnisse oder Erwartungen erfüllt.
  • Risikoübernahme: Die Verwendung des Skripts erfolgt auf eigene Gefahr. Sie erkennen an, dass die Nutzung des Skripts mit bestimmten Risiken verbunden ist, und Sie verstehen und übernehmen jedes dieser Risiken.
  • Verzicht und Freigabe: Sie machen NinjaOne nicht für nachteilige oder unbeabsichtigte Folgen verantwortlich, die sich aus Ihrer Nutzung des Skripts ergeben, und Sie verzichten auf alle gesetzlichen oder billigkeitsrechtlichen Rechte oder Rechtsmittel, die Sie gegen NinjaOne im Zusammenhang mit Ihrer Nutzung des Skripts haben könnten.
  • EULA: Wenn Sie ein NinjaOne-Kunde sind, unterliegt Ihre Nutzung des Skripts dem für Sie geltenden Endbenutzer-Lizenzvertrag (EULA).