Un sistem de monitorizare pentru pachete software pe Ubuntu/Debian.
PackageMonitor urmareste ce pachete instalez si elimin din sistem, oferind un istoric complet al modificarilor. Am construit backend-ul sa parseze automat logurile dpkg si sa genereze date structurate pe care frontend-ul le poate folosi usor.
Cand lucrezi pe un sistem o perioada lunga, pierzi urma a ce ai instalat si cand. PackageMonitor rezolva asta, pastrand un istoric complet si oferind un snapshot al starii curente a sistemului.
Contine fiecare instalare si eliminare cu timestamp exact:
timestamp,action,package,version
2025-08-05 16:48:12,installed,vim,8.2.3995-1
2025-08-05 17:00:00,removed,gimp,2.10.34-1Un snapshot cu exact ce e instalat acum:
package,version
vim,8.2.3995-1
firefox,120.0-1Memoreaza cand a rulat ultima data, ca sa proceseze doar intrarile noi.
git clone https://github.com/ursus161/PackageMonitor.git
cd PackageMonitor/backend
chmod +x monitor.sh setup_cron.sh
./monitor.sh
./setup_cron.shGata. Scriptul ruleaza automat la fiecare 30 de minute.
Verific datele oricand vreau:
cat data/packages.csv | head -20
cat data/current_packages.csv | head -20Sau rulez manual pentru update instant:
cd backend && ./monitor.shPackageMonitor/
├── backend/
│ ├── monitor.sh - parseaza logurile si genereaza CSV-uri
│ └── setup_cron.sh - configureaza automatizarea
├── frontend/
│ └── packagemonitor.sh - interfata utilizator (meniu interactiv)
└── data/
├── packages.csv
├── current_packages.csv
└── .last_run
Prima rulare proceseaza tot fisierul dpkg.log. Rularile urmatoare proceseaza doar intrarile noi de la ultima executie, deci e rapid.
Am folosit path-uri absolute pentru ca scriptul sa functioneze corect din cron, care ruleaza din root directory.
Backend-ul elimina duplicate automat si curata numele pachetelor de sufixe arhitectura.
Frontend-ul ofera un meniu interactiv pentru vizualizarea datelor: lista pachete instalate, pachete eliminate, istoric pentru un pachet specific, operatii pe intervale de timp.
CSV-urile sunt gata de folosit pentru:
- Afisarea pachetelor instalate cu data ultimei instalari
- Listarea pachetelor eliminate
- Vizualizarea istoricului complet pentru un pachet
- Filtrarea operatiilor pe intervale de timp
Bash cu grep, awk, sed si sort pentru procesare text. dpkg-query pentru starea curenta. Cron pentru automatizare.
Datele vin din /var/log/dpkg.log si /var/lib/dpkg/status.
Scriptul nu ruleaza?
chmod +x monitor.shCSV-urile nu apar?
mkdir -p dataCron-ul nu merge?
crontab -l
grep CRON /var/log/syslog