Come utilizzare uno script Bash per trovare i file dei crash di sistema su Mac

La stabilità del sistema è fondamentale per i professionisti dell’IT, soprattutto per chi gestisce più dispositivi o fornisce servizi di Managed Service Provider (MSP). Garantire che i dispositivi funzionino senza intoppi può prevenire i tempi di inattività, mantenere alte la produttività e la soddisfazione degli utenti.

Questa guida esplora uno script semplice ma potente, progettato per rilevare i crash di sistema recenti su macOS. Comprendendo e implementando questo script, i professionisti IT possono gestire in modo proattivo e risolvere efficacemente i problemi di sistema.

Background

I crash del sistema possono essere indicativi di problemi hardware o software. Su macOS, i rapporti sui crash vengono generati e archiviati in directory specifiche, aiutando a diagnosticare i problemi che hanno causato il crash di sistema. Questi report sono disponibili in vari formati di file come .ips, .panic e .crash, ognuno dei quali fornisce diversi livelli di dettaglio sugli incidenti.

Per i professionisti IT e gli MSP, disporre di uno strumento in grado di scansionare automaticamente questi report di crash di sistema può far risparmiare tempo e fatica. Questo script offre una soluzione semplice per identificare tutti i file di crash creati negli ultimi 180 giorni, consentendo un intervento e una risoluzione tempestivi.

Lo script per individuare i file relativi ai crash di sistema

#!/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

 

Analisi dettagliata

Lo script per trovare i file dei crash di sistema è scritto in Bash ed esegue le seguenti funzioni chiave:

  1. Impostazione dell’ambiente: La riga shebang specifica l’interprete dello script, assicurando che venga eseguito con le impostazioni di ambiente appropriate.
  2. Descrizione e note di rilascio: I commenti forniscono una breve panoramica dello scopo dello script e della cronologia delle sue versioni.
  3. Controllo condizionato per i crash dell’applicazione: Se la variabile d’ambiente testForAppCrashes è impostata su true, lo script cerca i file .ips (che indicano i cresh delle applicazioni) creati negli ultimi 180 giorni e li mostra.
  4. Ricerca dei file Panic e Crash: Questi comandi individuano i file .panic e .crash, esclusi i file denominati *.contents.panic, nell’arco di tempo specificato.
  5. Registrazione dei file rilevati: Lo script per trovare i file dei crash di sistema visualizza le avvertenze e gli errori per ogni file rilevato, fornendo un feedback immediato all’utente.
  6. Stato di uscita in base ai risultati: A seconda che siano stati trovati file di crash, lo script esce con stato 1 (che indica la presenza di problemi) o 0 (che indica l’assenza di problemi).

Casi d’uso potenziali

Caso di studio: Gestione proattiva dell’IT

Un professionista IT che gestisce un parco di computer Mac in un ambiente aziendale potrebbe utilizzare questo script per verificare regolarmente la presenza di crash di sistema recenti. Programmando l’esecuzione giornaliera di questo script tramite un cron job, può assicurarsi di ricevere immediatamente la notifica di ogni nuovo crash di sistema. Ciò consente una rapida risoluzione dei problemi, riducendo al minimo i tempi di inattività e mantenendo l’affidabilità del sistema.

Confronti

Controllo manuale e tramite script a confronto

Il controllo manuale dei report sui crash di sistema comporta la navigazione nelle directory appropriate e l’ispezione dei file, operazione che può richiedere molto tempo ed essere soggetta a errori. Questo script automatizza il processo, garantendo coerenza e precisione.

Script e strumenti commerciali

Sebbene esistano strumenti commerciali che offrono un monitoraggio completo del sistema, questo script fornisce un’alternativa economica e leggera per il rilevamento dei crash di sistema, particolarmente adatta agli ambienti IT più piccoli o a casi d’uso specifici in cui l’acquisito di una soluzione di monitoraggio completa non è giustificata.

Domande frequenti

D: Come posso eseguire questo script per trovare i file dei crash di sistema?

R: Salva lo script in un file, rendilo eseguibile con chmod +x filename.sh ed eseguilo con ./filename.sh.

D: E se volessi controllare i crash di sistema in un periodo di tempo diverso?

R: Modifica il parametro -mtime -180 con il numero di giorni desiderato.

D: Questo script per trovare i file dei crash di sistema può essere utilizzato su sistemi non MacOS?

R: No, questo script per trovare i file dei crash di sistema è stato progettato specificamente per macOS.

Implicazioni

L’esecuzione regolare di questo script può aiutare a identificare i modelli di crash di sistema ricorrenti, consentendo ai professionisti IT di affrontare i potenziali problemi prima che si aggravino. L’individuazione precoce dei crash può prevenire guasti più gravi al sistema e mantenere prestazioni ottimali e soddisfazione degli utenti.

Raccomandazioni

  • Automatizza l’esecuzione: Programma l’esecuzione dello script per trovare i file dei crash di sistema a intervalli regolari utilizzando i cron job.
  • Integralo con gli strumenti di monitoraggio: Combina questo script per trovare i file dei crash di sistema con altre soluzioni di monitoraggio per ottenere un approccio completo.
  • Controlla regolarmente i log: Esamina regolarmente i log di output per garantire che tutti i problemi vengano affrontati tempestivamente.

Considerazioni finali

L’integrazione di questo script per trovare i file dei crash di sistema nel tuo kit di strumenti di gestione IT può migliorare in modo significativo la tua capacità di mantenere la stabilità del sistema e di affrontare preventivamente i problemi. Strumenti come NinjaOne possono semplificare ulteriormente questi processi, fornendo una piattaforma unificata per il monitoraggio e la gestione di più dispositivi. Sfruttando questi strumenti, i professionisti dell’IT possono assicurarsi di essere attrezzati per gestire qualsiasi sfida si presenti, mantenendo operazioni fluide e affidabili.

Passi successivi

La creazione di un team IT efficiente ed efficace richiede una soluzione centralizzata che funga da principale strumento per la fornitura di servizi. NinjaOne consente ai team IT di monitorare, gestire, proteggere e supportare tutti i dispositivi, ovunque essi si trovino, senza la necessità di una complessa infrastruttura locale.

Per saperne di più sulla distribuzione remota di script con NinjaOne, fai un tour dal vivo, o inizia la tua prova gratuita della piattaforma NinjaOne.

Categorie:

Ti potrebbe interessare anche

×

Guarda NinjaOne in azione!

Inviando questo modulo, accetto La politica sulla privacy di NinjaOne.

Termini e condizioni NinjaOne

Cliccando sul pulsante “Accetto” qui sotto, dichiari di accettare i seguenti termini legali e le nostre condizioni d’uso:

  • Diritti di proprietà: NinjaOne possiede e continuerà a possedere tutti i diritti, i titoli e gli interessi relativi allo script (compreso il copyright). NinjaOne ti concede una licenza limitata per l’utilizzo dello script in conformità con i presenti termini legali.
  • Limitazione d’uso: Puoi utilizzare lo script solo per legittimi scopi personali o aziendali interni e non puoi condividere lo script con altri soggetti.
  • Divieto di ripubblicazione: In nessun caso ti è consentito ripubblicare lo script in una libreria di script appartenente o sotto il controllo di un altro fornitore di software.
  • Esclusione di garanzia: Lo script viene fornito “così com’è” e “come disponibile”, senza garanzie di alcun tipo. NinjaOne non promette né garantisce che lo script sia privo di difetti o che soddisfi le tue esigenze o aspettative specifiche.
  • Assunzione del rischio: L’uso che farai dello script è da intendersi a tuo rischio. Riconosci che l’utilizzo dello script comporta alcuni rischi intrinseci, che comprendi e sei pronto ad assumerti.
  • Rinuncia e liberatoria: Non riterrai NinjaOne responsabile di eventuali conseguenze negative o indesiderate derivanti dall’uso dello script e rinuncerai a qualsiasi diritto legale o di equità e a qualsiasi rivalsa nei confronti di NinjaOne in relazione all’uso dello script.
  • EULA: Se sei un cliente NinjaOne, l’uso dello script è soggetto al Contratto di licenza con l’utente finale (EULA) applicabile.