SZC logo

Kecskeméti SZC

OM kód: 203041/002 | 6090 Kunszentmiklós, Apostol P. u. 2-6.

Intézmény logo

Kecskeméti SZC Virágh Gedeon Technikum

HírekKözérdekű adatokCLASSROOMKRÉTA

11. évf: Automatizálás / scripting

11. évf: Automatizálás / scripting

Bash és Python automatizálás hálózati környezetben

bash.png

Bevezetés

A modern hálózatüzemeltetésben a rendszergazdák és hálózati technikusok munkájának jelentős része:

  • ismétlődő feladatokból,
  • konfigurációk ellenőrzéséből,
  • naplózásból,
  • monitorozásból,
  • és automatikus folyamatokból áll.

Nagyobb hálózatokban kézi módszerrel:

  • IP-címeket ellenőrizni,
  • mentéseket készíteni,
  • eszközöket vizsgálni

rendkívül időigényes lenne.

Ezért alkalmaznak:

  • Bash scriptet
  • Python automatizálást
  • hálózati API-kat
  • ütemezett feladatokat

Mert húsz routert kézzel végigpingelni még „megoldható”. Kétszázat már csak akkor szeretne valaki, ha különösen haragszik önmagára.

Mi az a script?

A script:

  • utasítások sorozata,
  • amelyeket automatikusan végrehajt a rendszer.

Mire használható?

Példák:

  • mentések
  • naplózás
  • konfigurációk kezelése
  • monitorozás
  • hálózati tesztelés
  • automatizálás

Bash

Bash: Bourne Again Shell

Linux rendszereken:

  • az egyik leggyakoribb parancsértelmező.

 

Bash script felépítése

Egy Bash script általában: 

  • #!/bin/bash
  • parancsok

Shebang

#!/bin/bash

Megadja: melyik értelmező futtassa a scriptet.

Egyszerű Bash példa

#!/bin/bash

echo "Hálózati teszt"
echo "Mai dátum:"
date

Script futtathatóvá tétele

Linux: chmod +x script.sh

Futtatás: ./script.sh

Változók Bash-ben

#!/bin/bash

nev="Attila"

echo $nev

Felhasználói adatbekérés

#!/bin/bash

read -p "IP cím: " ip

echo "Ping indul: $ip"

Feltétel Bash-ben

#!/bin/bash

if ping -c 1 8.8.8.8
then
echo "Elérhető"
else
echo "Nincs kapcsolat"
fi

Ciklus Bash-ben

#!/bin/bash

for i in {1..5}
do
echo "Teszt: $i"
done

Hálózati példa Bash használatával

IP címek pingelése:

#!/bin/bash

for i in {1..10}
do
ping -c 1 192.168.1.$i
done

Ping Sweep

A ping sweep:

  • IP tartomány vizsgálata,
  • aktív gépek keresése.

Ping Sweep Bash példa

#!/bin/bash

for i in {1..254}
do

ping -c 1 -W 1 192.168.1.$i > /dev/null

if [ $? -eq 0 ]
then
echo "Aktív: 192.168.1.$i"
fi

done

A script működése

A script:

  1. végigmegy az IP-tartományon
  2. pinget küld
  3. ellenőrzi a visszajelzést
  4. kiírja az aktív gépeket

Python hálózati automatizálás

A Python:

  • egyszerű,
  • jól olvasható,
  • és rendkívül népszerű hálózati környezetben.

Miért használják hálózatokban?

Előnyök:

  • könnyen tanulható
  • API támogatás
  • sok könyvtár
  • automatizálás

Hálózati Python könyvtárak

KönyvtárFunkció
sockethálózati kapcsolat
requestsweb/API
paramikoSSH
netmikoCisco kezelés
napalmautomatizálás
scapycsomagelemzés

Egyszerű Python példa: print("Hálózati teszt")

Változók Pythonban

ip="192.168.1.1"

print(ip)

Felhasználói adatbekérés

ip=input("IP cím: ")

print(ip)

Egyszerű ping Pythonban

import os

ip="8.8.8.8"

os.system("ping "+ip)

Ping Sweep Pythonban

import os

for i in range(1,255):

   ip="192.168.1."+str(i)

   response=os.system(
   "ping -n 1 "+ip)

   if response==0:
       print(ip,"elérhető")

A script működése

A program:

  • IP-ket generál
  • pinget küld
  • ellenőrzi a választ
  • megjeleníti az aktív eszközöket

Portvizsgáló Python példa

import socket

ip="192.168.1.1"

for port in [22,80,443]:

   s=socket.socket()

   result=s.connect_ex((ip,port))

   if result==0:
       print(port,"nyitott")

   s.close()

Mire használható?

Példák:

  • SSH ellenőrzés
  • webszerver vizsgálat
  • szolgáltatások keresése

SSH automatizálás

Pythonban gyakori: paramiko

Példa Cisco kapcsolódásra

from netmiko import ConnectHandler

router = {

'device_type':'cisco_ios',
'host':'192.168.1.1',
'username':'admin',
'password':'Cisco123'

}

connection=ConnectHandler(**router)

output=connection.send_command(
"show ip interface brief")

print(output)

 

Mire használható Netmiko?

Példák:

  • konfigurációk lekérdezése
  • mentések készítése
  • tömeges módosítás

Automatikus backup

A konfigurációk rendszeres mentése fontos.

Miért?

Előnyök:

  • gyors visszaállítás
  • hibák javítása
  • verziókövetés

Backup Bash példa

#!/bin/bash

date=$(date +%F)

cp /etc/network/interfaces \
backup_$date

Backup Python példa

import shutil

shutil.copy(
"config.txt",
"config_backup.txt")

Cisco konfiguráció mentése

Parancssorból: copy running-config startup-config

TFTP mentés

Cisco: copy running-config tftp:

Ütemezett futtatás Linux alatt

Cron használata: crontab -e

Példa

Minden nap 01:00-kor: 0 1 * * * /home/admin/backup.sh

Windows ütemezés

Eszköz:

Feladatütemező
(Task Scheduler)

Automatizálási példák

Hálózati környezetben:

  • switch konfiguráció mentése
  • aktív gépek keresése
  • logfájl ellenőrzése
  • VPN tesztelése
  • interface állapot figyelése
  • IP cím vizsgálat

Hibakeresés scriptnél

Gyakori hibák:

  • rossz IP
  • hibás jogosultság
  • hiányzó könyvtár
  • elírt változó
  • hibás útvonal

Python csomag telepítés

Példa: pip install netmiko

Best Practice

Ajánlások:

  • kommentek használata
  • hibakezelés
  • naplózás
  • verziókezelés
  • tesztkörnyezet

Gyakorlati feladat

Feladat:

Készíts Python programot:

  • amely végigvizsgálja
    a: 192.168.1.1–192.168.1.50

tartományt

és:

  • kiírja az aktív gépeket
  • naplófájlba menti az eredményt

Partnereink

SZC logo

Kecskeméti SZC


Kecskeméti SZC Virágh Gedeon Technikum

6090 Kunszentmiklós, Apostol P. u. 2-6.

Telefon: 76/550-180

E-mail: viragh(kukac)kecskemetiszc.hu

OM azonosító: 203041/002

Felnőttképzési nyilvántartás száma: Fnysz: E-001288/2015


2026Kecskeméti SZC Virágh Gedeon Technikum