#!/usr/bin/python3 # file : mac-invent-cleanup.py # author : Wouter Barendsen # created : 2023-11-21 09:34 # modified: 2024-02-11 10:48:44 # remarks : # import subprocess, sys, time, datetime, re, os ### Editable variables ############################ ProgDir="/home/sjaak/scripts/macinvent/" TijdJaren=2 ### Variables ##################################### Csv=ProgDir+"mac-invent.csv" MacInvent=[] MacInvent2=[] LineCnt=0 Datum=datetime.datetime.now().strftime('%Y-%m-%d') Opgeruimd=False # Aantal seconden in een jaar seconden_per_jaar = 365 * 24 * 60 * 60 # Huidige tijd in seconden sinds epoch huidige_tijd_in_seconden = time.time() # Bereken de epoch van het aantal jaren terug epochLimiet = huidige_tijd_in_seconden - (TijdJaren * seconden_per_jaar) def help(): print("mac-invent-cleanup.py 2024 Wouter Barendsen") print(" Dit script ruimt entries ouder dan x jaar op. Na een aantal") print(" jaren zal het niet meer relevant zijn wanneer een mac adres ") print(" er ooit was.") print("") sys.exit(1) def getChar(): import tty, sys, termios # raises ImportError if unsupported fd = sys.stdin.fileno() oldSettings = termios.tcgetattr(fd) try: tty.setcbreak(fd) answer = sys.stdin.read(1) finally: termios.tcsetattr(fd, termios.TCSADRAIN, oldSettings) return answer if len(sys.argv) > 1: if sys.argv[1] == "-h" or sys.argv[1] == "--help": help() print(f"{Datum}: opruimen alle entries ouder dan {TijdJaren} jaar? (J/N)") Answer=getChar().upper() print(Answer) if not Answer in ("J","Y"): print("Exit") sys.exit(1) # lees de csv-file in een list of lists try: with open(Csv) as f: for Line in f: Line=Line.strip() Record=Line.split(sep=";") MacInvent.append(Record) LineCnt+=1 TotalRec=len(MacInvent) except IOError as E: print("Error reading CSV: ",E) # mv csv naar backup os.rename(Csv,Csv+".backup."+Datum) # schrijf csv weg try: with open(Csv,'w') as f: for Effe in MacInvent: if int(Effe[4]) > epochLimiet: f.write(Effe[0]+";"+Effe[1]+";"+Effe[2]+";"+Effe[3]+";"+Effe[4]+"\n") else: print(f"{Effe[0]:15} {Effe[2]:15} opgeruimd") Opgeruimd=True; except IOError as E: print("Error writing csv: ",E) print("(Zet backup terug met: cp "+Csv+".backup."+Datum+" "+Csv+")") if not Opgeruimd: print("Niets op te ruimen")