Skip to content
Snippets Groups Projects
2_feladat.md 3.38 KiB
Newer Older
  • Learn to ignore specific revisions
  • # 2. fealadat - Statisztika szkript 
    
    
    Réthelyi Bálint's avatar
    Réthelyi Bálint committed
    **Feladat:** Készítsünk futtatható Python szkriptet `mirror_stat.py` néven, amely statisztikát készít megadott 
    Debian mirror szerverek elérhetőségéről, amit a futása végén ki is listáz!
    
    
    A forráskód:
    
    
    Réthelyi Bálint's avatar
    Réthelyi Bálint committed
    ```python
    
    #!/usr/bin/env python3
    import ping3
    import pprint
    
    
    def read_file():
        domains = []
        with open("debian_mirrors.txt", "r") as f:
            for line in f:
                domain = line.split('http://')[1]
                domain = domain.split('/debian')[0]
                domains.append(domain)
        f.close()
        return domains
    
    
    def pingging(domains):
        stats = {}
    
        for domain in domains:
            stats[domain] = ping3.ping(domain)  
    
    Réthelyi Bálint's avatar
    Réthelyi Bálint committed
            # don't need sudo priv for this in a modern system
    
    
        return stats
    
    
    def write_out(stats):
        pprint.pprint(stats)
    
    
    def main():
        write_out(pingging(read_file()))
    
    
    if __name__ == '__main__':
        main()
    
    ```
    
    
    Réthelyi Bálint's avatar
    Réthelyi Bálint committed
    Először is definiáltam egy függvényt, ami megnyitja a fájlt, és kiolvassa, majd feldolgozza annak a sorait.
    Miután ez megtörténik, elkészítettem a pingelős függvényt, mely megpingeli a domaineket, és egy `tuple`-be menti az 
    eredményt. Végül a PrettyPrint könyvtár segítségével szépen megjelenítem a kapott `tuple` tartalmát.
    
    
    Futtatás:
    
    ```bash
    
    Réthelyi Bálint's avatar
    Réthelyi Bálint committed
    $ ./mirror_stat.py  # don't need sudo priv for this in a modern system
    
    {'ftp.at.debian.org': 0.03299736976623535,
     'ftp.au.debian.org': 0.34027576446533203,
     'ftp.be.debian.org': 0.03146529197692871,
     'ftp.bg.debian.org': 0.026972532272338867,
     'ftp.br.debian.org': 0.24283742904663086,
     'ftp.by.debian.org': 0.04458022117614746,
     'ftp.ca.debian.org': 0.18018722534179688,
     'ftp.ch.debian.org': 0.028354883193969727,
     'ftp.cl.debian.org': 0.30657315254211426,
     'ftp.cn.debian.org': 0.3067350387573242,
     'ftp.cz.debian.org': 0.01130819320678711,
     'ftp.de.debian.org': 0.03345513343811035,
     'ftp.dk.debian.org': 0.038808584213256836,
     'ftp.ee.debian.org': 0.0491025447845459,
     'ftp.es.debian.org': 0.02813887596130371,
     'ftp.fi.debian.org': 0.0488126277923584,
     'ftp.fr.debian.org': 0.026817798614501953,
     'ftp.gr.debian.org': 0.03269171714782715,
     'ftp.hk.debian.org': 0.2723119258880615,
     'ftp.hr.debian.org': 0.014515399932861328,
     'ftp.hu.debian.org': None,
     'ftp.ie.debian.org': 0.02628612518310547,
     'ftp.ir.debian.org': 0.08768963813781738,
     'ftp.is.debian.org': 0.032915592193603516,
     'ftp.it.debian.org': 0.024731159210205078,
     'ftp.jp.debian.org': None,
     'ftp.kr.debian.org': 0.29165196418762207,
     'ftp.lt.debian.org': None,
     'ftp.mx.debian.org': 0.19156241416931152,
     'ftp.nc.debian.org': 0.28337621688842773,
     'ftp.nl.debian.org': 0.027075767517089844,
     'ftp.no.debian.org': 0.04285454750061035,
     'ftp.nz.debian.org': 0.4031505584716797,
     'ftp.pl.debian.org': 0.03990578651428223,
     'ftp.pt.debian.org': 0.055294036865234375,
     'ftp.ro.debian.org': 0.02721881866455078,
     'ftp.ru.debian.org': 0.06427860260009766,
     'ftp.se.debian.org': 0.049542903900146484,
     'ftp.si.debian.org': 0.03377056121826172,
     'ftp.sk.debian.org': 0.014045000076293945,
     'ftp.sv.debian.org': 0.23726940155029297,
     'ftp.tr.debian.org': None,
     'ftp.tw.debian.org': 0.4211571216583252,
     'ftp.ua.debian.org': 0.04955434799194336,
     'ftp.uk.debian.org': 0.03197216987609863,
     'ftp.us.debian.org': 0.20902609825134277,
     'ftp2.de.debian.org': 0.020498037338256836,
     'ftp2.fr.debian.org': 0.02599787712097168}
    
    Réthelyi Bálint's avatar
    4  
    Réthelyi Bálint committed
    ```
    
    
    Réthelyi Bálint's avatar
    Réthelyi Bálint committed
    Sikeresen megpingettem a mirror szervereket, ezeket ki is listáztam.
    
    ---