fastoch13

Untitled

Jan 13th, 2025
27
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.33 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. # Chemin du fichier de log pour l'état réseau
  4. LOG_FILE="/home/siindus/Documents/network_status_log.txt"
  5.  
  6. # Fonction pour afficher un log horodaté
  7. log() {
  8. echo "$(date "+[%Y-%m-%d %H:%M:%S]") $1" >> "$LOG_FILE"
  9. }
  10.  
  11. # Effacer le fichier de log précédent
  12. > "$LOG_FILE"
  13.  
  14. log "Début de la vérification de l'état réseau"
  15.  
  16. # Obtenir la liste des interfaces réseau, en excluant 'lo'
  17. interfaces=$(nmcli device status | grep -E 'connected|connecting' | grep -v 'lo' | awk '{print $1}')
  18.  
  19. # Vérifier si des interfaces sont disponibles
  20. if [ -z "$interfaces" ]; then
  21. log "Aucune interface réseau active trouvée."
  22. yad --error --title="Erreur Réseau" --text="Aucune interface réseau active détectée." --width=300 --height=100 --center --undecorated --skip-taskbar --ontop
  23. exit 1
  24. fi
  25.  
  26. # Parcourir chaque interface pour afficher ses informations
  27. for iface in $interfaces; do
  28. log "------------------------------------------------"
  29. log "Interface : $iface"
  30.  
  31. # État de l'interface
  32. state=$(nmcli device show "$iface" | grep -i "GENERAL.STATE" | awk -F': ' '{print $2}')
  33. log "État : $state"
  34.  
  35. # Adresse IP et Masque de sous-réseau
  36. ip_info=$(nmcli -g IP4.ADDRESS device show "$iface")
  37. if [ -n "$ip_info" ]; then
  38. ip_address=$(echo "$ip_info" | awk -F'/' '{print $1}')
  39. subnet_mask=$(echo "$ip_info" | awk -F'/' '{print $2}')
  40. log "Adresse IP : $ip_address"
  41. log "Masque de sous-réseau : /$subnet_mask"
  42. else
  43. log "Adresse IP : Non attribuée"
  44. log "Masque de sous-réseau : Non attribué"
  45. fi
  46.  
  47. # Passerelle
  48. gateway=$(nmcli -g IP4.GATEWAY device show "$iface")
  49. log "Passerelle : ${gateway:-Non attribuée}"
  50.  
  51. # Serveurs DNS
  52. dns_servers=$(nmcli -g IP4.DNS device show "$iface" | tr '\n' ', ' | sed 's/, $//')
  53. log "Serveurs DNS : ${dns_servers:-Non configurés}"
  54.  
  55. # Adresse MAC
  56. mac_address=$(nmcli -g GENERAL.HWADDR device show "$iface")
  57. log "Adresse MAC : ${mac_address:-Non détectée}"
  58.  
  59. log "------------------------------------------------"
  60. done
  61.  
  62. # Afficher le contenu du fichier de log à l'utilisateur de manière élégante
  63. yad --text-info --title="État du Réseau" --filename="$LOG_FILE" --width=600 --height=400 --center --undecorated --skip-taskbar --ontop
  64.  
Add Comment
Please, Sign In to add comment