Praktische Nachrichten-Szenarien
Systemüberwachung und -berichterstattung
Skript zur Überwachung der Festplattenplatzverwendung
#!/bin/bash
df_output=$(df -h / | awk 'NR==2 {print $5}' | sed 's/%//')
if [ $df_output -gt 80 ]; then
echo -e "\e[31mWarning: Disk space usage above 80%\e[0m" >&2
fi
Überprüfung der Netzwerkverbindung
ping_result=$(ping -c 4 google.com)
if [ $? -eq 0 ]; then
echo "Network connection: Stable"
else
echo "Network connection: Unstable" >&2
fi
Protokollierungs- und Benachrichtigungs-Szenarien
Protokollierung von Systemereignissen
log_system_event() {
local message="$1"
echo "$(date '+%Y-%m-%d %H:%M:%S') - $message" >> /var/log/system_events.log
}
log_system_event "LabEx environment initialization complete"
Benutzerinteraktions-Szenarien
Interaktive Benutzeraufforderungen
read -p "Enter your name: " username
echo "Welcome, $username to the LabEx Linux environment!"
Fehlerbehandlungs-Muster
Funktion mit Fehlermeldungen
backup_files() {
local source="$1"
local destination="$2"
if [! -d "$source" ]; then
echo "Error: Source directory does not exist" >&2
return 1
fi
cp -r "$source" "$destination" || {
echo "Backup failed for $source" >&2
return 1
}
}
Nachrichten-Workflow-Muster
graph TD
A[Start Process] --> B{Validation}
B -->|Pass| C[Execute Task]
B -->|Fail| D[Display Error Message]
C --> E[Log Success]
D --> F[Log Error]
E --> G[End Process]
F --> G
Allgemeine Nachrichten-Szenarien
Szenario |
Herangehensweise |
Beispielbefehl |
Benutzerfeedback |
Echo mit Farbe |
echo -e "\e[32mTask Complete\e[0m" |
Fehlerberichterstattung |
Stderr-Umleitung |
command 2> error.log |
Stumme Ausführung |
Null-Umleitung |
command > /dev/null 2>&1 |
Best Practices
- Verwenden Sie sinnvolle und präzise Nachrichten.
- Implementieren Sie eine geeignete Fehlerbehandlung.
- Nutzen Sie Farben für visuelle Betonung.
- Protokollieren Sie kritische Systemereignisse.
- Geben Sie klare Benutzeranleitungen.
Beispiel für bedingte Nachrichten
check_system_status() {
local critical_services=("ssh" "nginx" "mysql")
for service in "${critical_services[@]}"; do
systemctl is-active --quiet "$service" || {
echo -e "\e[31mWarning: $service service is not running\e[0m" >&2
}
done
}
Fortgeschrittene Benachrichtigungstechniken
E-Mail-Alarme
send_alert() {
local message="$1"
echo "$message" | mail -s "System Alert" admin@example.com
}
Telegram-Benachrichtigungen
send_telegram_alert() {
local message="$1"
curl -s -X POST \
"https://api.telegram.org/bot<YOUR_BOT_TOKEN>/sendMessage" \
-d "chat_id=<CHAT_ID>&text=$message"
}