49 lines
1.6 KiB
Python
49 lines
1.6 KiB
Python
import psycopg2
|
|
|
|
conn = psycopg2.connect(host="192.168.1.76", port=5432, user="vladimir.buzalka",
|
|
password="Vlado7309208104++", database="fotky_buzalkovi")
|
|
cur = conn.cursor()
|
|
|
|
cur.execute("""
|
|
SELECT
|
|
COUNT(*) AS unikatnich_souboru,
|
|
SUM(velikost) AS celkova_velikost,
|
|
AVG(velikost) AS prumerna_velikost,
|
|
MIN(velikost) AS nejmensi,
|
|
MAX(velikost) AS nejvetsi
|
|
FROM zaloha_obrazku
|
|
""")
|
|
z = cur.fetchone()
|
|
|
|
cur.execute("SELECT COUNT(*), COUNT(DISTINCT hostname) FROM zdrojove_soubory")
|
|
s = cur.fetchone()
|
|
|
|
cur.execute("SELECT hostname, COUNT(*) FROM zdrojove_soubory GROUP BY hostname ORDER BY hostname")
|
|
hosts = cur.fetchall()
|
|
|
|
conn.close()
|
|
|
|
def fmt(b):
|
|
if b is None: return "N/A"
|
|
for unit in ("B", "KB", "MB", "GB", "TB"):
|
|
if b < 1024: return f"{b:.1f} {unit}"
|
|
b /= 1024
|
|
return f"{b:.1f} PB"
|
|
|
|
print("=" * 45)
|
|
print(" ZÁLOHA — statistiky")
|
|
print("=" * 45)
|
|
print(f" Unikátních souborů (záloha): {z[0]:>10,}")
|
|
print(f" Celková velikost: {fmt(z[1]):>10}")
|
|
print(f" Průměrná velikost: {fmt(z[2]):>10}")
|
|
print(f" Nejmenší soubor: {fmt(z[3]):>10}")
|
|
print(f" Největší soubor: {fmt(z[4]):>10}")
|
|
print()
|
|
print(f" Zdrojových záznamů celkem: {s[0]:>10,}")
|
|
print(f" Počet zdrojových serverů: {s[1]:>10,}")
|
|
print()
|
|
print(" Záznamy podle hostname:")
|
|
for host, count in hosts:
|
|
print(f" {host:<20} {count:>8,} souborů")
|
|
print("=" * 45)
|