Outils & Référence
🌐 Scripts Réseau — Cisco & Linux — Scripts prêts à l'emploi
📜 Scripts Utiles
10 scripts pour l'administration réseau : Cisco, ping sweep, scan de ports, VLAN.
📜 5 scripts
🟢 2 débutant
🔵 3 confirmé
🔴 0 expert
›
Ping sweep d'un sous-réseau
Débutant
pingscanréseauinventaire
Scanne tous les hôtes d'un sous-réseau /24 et affiche les IPs qui répondent.
#!/bin/bash
# ─── Variables à modifier ───────────────────────────
RESEAU="192.168.1" # Les 3 premiers octets
TIMEOUT=1 # Timeout ping en secondes
THREADS=50 # Nombre de pings parallèles
OUTPUT="/tmp/hosts_$(date +%Y%m%d).txt"
# ────────────────────────────────────────────────────
echo "Scan du réseau $RESEAU.0/24 en cours..."
echo ""
ACTIFS=0
> "$OUTPUT"
# Ping parallèle pour accélérer le scan
for i in $(seq 1 254); do
(
if ping -c 1 -W $TIMEOUT "$RESEAU.$i" &>/dev/null; then
# Résolution du nom
HOSTNAME=$(getent hosts "$RESEAU.$i" 2>/dev/null | awk '{print $2}')
MAC=$(arp "$RESEAU.$i" 2>/dev/null | grep -oE '([0-9a-fA-F]{2}:){5}[0-9a-fA-F]{2}')
echo "$RESEAU.$i ${HOSTNAME:-unknown} ${MAC:-}" | tee -a "$OUTPUT"
fi
) &
# Limiter les threads parallèles
[ $(jobs -r | wc -l) -ge $THREADS ] && wait
done
wait
ACTIFS=$(wc -l < "$OUTPUT")
echo ""
echo "✅ $ACTIFS hôtes actifs sur $RESEAU.0/24"
echo "📄 Résultats : $OUTPUT"
›
Sauvegarde config Cisco IOS via TFTP
Confirmé
ciscotftpbackupconfig
Se connecte à une liste de routeurs/switches Cisco via SSH et sauvegarde la running-config.
#!/bin/bash
# ─── Variables à modifier ───────────────────────────
EQUIPEMENTS=("192.168.1.1" "192.168.1.2" "192.168.1.254")
SSH_USER="admin"
SSH_PASS="cisco123" # Mieux : utiliser des clés SSH
BACKUP_DIR="/backup/cisco/$(date +%Y%m%d)"
# ────────────────────────────────────────────────────
mkdir -p "$BACKUP_DIR"
for ip in "${EQUIPEMENTS[@]}"; do
echo "🔧 Sauvegarde de $ip..."
FILENAME="$BACKUP_DIR/${ip//./_}_$(date +%H%M).cfg"
# Via sshpass + SSH (installer : apt install sshpass)
sshpass -p "$SSH_PASS" ssh -o StrictHostKeyChecking=no -o ConnectTimeout=10 -o KexAlgorithms=+diffie-hellman-group14-sha1 -o HostKeyAlgorithms=+ssh-rsa "$SSH_USER@$ip" "show running-config" > "$FILENAME" 2>/dev/null
if [ $? -eq 0 ] && [ -s "$FILENAME" ]; then
LIGNES=$(wc -l < "$FILENAME")
echo " ✅ $FILENAME ($LIGNES lignes)"
else
echo " ❌ Échec de connexion à $ip"
rm -f "$FILENAME"
fi
done
echo ""
echo "✅ Sauvegardes dans $BACKUP_DIR"
ls -lh "$BACKUP_DIR"
# Cron : 0 2 * * 0 /opt/scripts/backup_cisco.sh >> /var/log/backup_cisco.log 2>&1
›
Scan de ports (nmap alternatif)
Confirmé
scanportsnmapsecurite
Scan rapide de ports TCP sur une IP ou plage d'IPs sans nécessiter nmap.
#!/bin/bash
# ─── Variables à modifier ───────────────────────────
CIBLE="192.168.1.10"
PORTS_COURANTS=(21 22 23 25 53 80 110 135 139 143 443 445 1433 3306 3389 5432 8080 8443)
TIMEOUT=2
# ────────────────────────────────────────────────────
echo "=== Scan de ports — $CIBLE ==="
echo "Début : $(date)"
echo ""
OUVERTS=()
for port in "${PORTS_COURANTS[@]}"; do
# Test de connexion TCP non-bloquant
(echo >/dev/tcp/$CIBLE/$port) 2>/dev/null &
PID=$!
sleep $TIMEOUT
if kill -0 $PID 2>/dev/null; then
kill $PID 2>/dev/null
# Résolution service
SERVICE=$(getent services $port/tcp 2>/dev/null | cut -d/ -f1)
echo "❌ $port/tcp : fermé"
else
SERVICE=$(getent services $port/tcp 2>/dev/null | awk '{print $1}')
echo "✅ $port/tcp OUVERT ${SERVICE:+(${SERVICE})}"
OUVERTS+=($port)
fi
done
echo ""
echo "Ports ouverts : ${#OUVERTS[@]} — ${OUVERTS[*]}"
echo "Fin : $(date)"
# Si nmap est disponible — scan plus précis
if command -v nmap &>/dev/null; then
echo ""
echo "=== Résultat nmap ==="
nmap -sV -T4 --open -p"$(IFS=,; echo "${PORTS_COURANTS[*]}")" "$CIBLE"
fi
›
Monitoring latence réseau multi-cibles
Débutant
pinglatencemonitoringréseau
Mesure la latence vers plusieurs cibles toutes les N secondes et alerte si trop élevée.
#!/bin/bash
# ─── Variables à modifier ───────────────────────────
CIBLES=("8.8.8.8:Google DNS" "1.1.1.1:Cloudflare" "192.168.1.1:Passerelle")
INTERVALLE=30 # Secondes entre les mesures
SEUIL_MS=100 # Alerte si latence > 100ms
LOG_FILE="/var/log/latence_reseau.log"
# ────────────────────────────────────────────────────
echo "Monitoring latence démarré — $(date)"
echo "Cibles : ${#CIBLES[@]} | Intervalle : ${INTERVALLE}s | Seuil : ${SEUIL_MS}ms"
echo "Ctrl+C pour arrêter"
echo ""
while true; do
TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S')
for cible_info in "${CIBLES[@]}"; do
IP="${cible_info%%:*}"
NOM="${cible_info##*:}"
# Mesure latence moyenne sur 3 pings
RESULT=$(ping -c 3 -W 2 "$IP" 2>/dev/null | grep "round-trip\|rtt" | awk -F'/' '{printf "%.1f", $5}')
if [ -z "$RESULT" ]; then
RESULT="TIMEOUT"
STATUS="❌"
elif (( $(echo "$RESULT > $SEUIL_MS" | bc -l) )); then
STATUS="⚠️ "
else
STATUS="✅"
fi
LINE="$TIMESTAMP | $STATUS $NOM ($IP) : ${RESULT}ms"
echo "$LINE"
echo "$LINE" >> "$LOG_FILE"
done
echo "---"
sleep $INTERVALLE
done
›
Diagnostic connexion VPN/réseau
Confirmé
diagnosticVPNréseautroubleshooting
Script de diagnostic complet : interfaces, routes, DNS, connectivité vers des cibles critiques.
#!/bin/bash
echo "=== DIAGNOSTIC RÉSEAU COMPLET — $(hostname) — $(date) ==="
echo ""
echo "── Interfaces réseau ────────────────────────"
ip -br addr show | grep -v "^lo"
echo ""
echo "── Table de routage ─────────────────────────"
ip route show | head -10
echo ""
echo "── Passerelle par défaut ────────────────────"
GW=$(ip route | grep default | awk '{print $3}' | head -1)
echo "Passerelle : $GW"
if [ -n "$GW" ]; then
ping -c 2 -W 2 "$GW" &>/dev/null && echo "✅ Joignable" || echo "❌ Injoignable"
fi
echo ""
echo "── Test DNS ─────────────────────────────────"
DNS=$(cat /etc/resolv.conf | grep nameserver | head -2 | awk '{print $2}')
for dns in $DNS; do
echo -n "Serveur DNS $dns : "
if dig @$dns google.com +short &>/dev/null; then
echo "✅ Résolution OK"
else
echo "❌ Résolution KO"
fi
done
echo ""
echo "── Connectivité Internet ────────────────────"
CIBLES=("8.8.8.8" "1.1.1.1" "google.com")
for c in "${CIBLES[@]}"; do
ping -c 1 -W 3 "$c" &>/dev/null && echo "✅ $c joignable" || echo "❌ $c injoignable"
done
echo ""
echo "── Ports locaux en écoute ───────────────────"
ss -tlnp | grep LISTEN | awk '{print $4, $6}' | head -10
echo ""
echo "── Connexions VPN actives ───────────────────"
ip tuntap show 2>/dev/null || echo "Aucune interface TUN/TAP"
ip link show | grep -E "tun|tap|wg|vpn" || echo "Aucune interface VPN détectée"
Ajouter Les Fibrés à mes sources préférées
Retrouvez plus souvent nos guides dans vos résultats Google