📚 Fil Backup Scanner

Komplett dokumentation och anvÀndarmanual

🎯 Översikt

Fil Backup Scanner Àr ett kraftfullt verktyg för att automatiskt hitta och sÀkerhetskopiera nyligen modifierade filer pÄ ditt system. Verktyget scannar alla tillgÀngliga lagringsenheter och skapar en organiserad ZIP-fil med alla matchade filer.

✹ Perfekt för:
  • Automatiska sĂ€kerhetskopior av utvecklingsprojekt
  • Snabb backup innan systemuppdateringar
  • KatastrofĂ„terstĂ€llning och versionshantering
  • Dokumentation av Ă€ndringar över tid

⭐ Funktioner

🔍 Smart Scanning

Scannar automatiskt alla tillgÀngliga enheter och partitioner pÄ systemet.

📅 Tidsfiltrering

Hitta filer modifierade de senaste X dagarna (konfigurerbart).

📂 Filtypsfilter

VÀlj exakt vilka filÀndelser du vill inkludera i scanningen.

📩 ZIP-komprimering

Automatisk komprimering med bevarad katalogstruktur.

📋 Detaljerad Rapport

Genererar en komplett fillista med storlekar och modifieringsdatum.

🌐 Webb Interface

AnvÀndarvÀnligt PHP-baserat webb-UI för enkel Ätkomst.

đŸ’» Systemkrav

Backend (Python)

Webb UI (PHP)

⚠ Viktigt: PHP:s exec()-funktion mĂ„ste vara aktiverad i php.ini. Kontrollera att den inte Ă€r listad under disable_functions.

🚀 Installation

Steg 1: Ladda ner filerna

Ladda ner alla nödvÀndiga filer till en katalog pÄ din webbserver:

/var/www/backup-scanner/ ├── backup_scanner.py ├── index.php └── readme.html

Steg 2: Konfigurera behörigheter

PÄ Linux/macOS, ge Python-skriptet exekveringsrÀttigheter:

chmod +x backup_scanner.py

Skapa och konfigurera backup-katalogen:

mkdir backups chmod 755 backups

Steg 3: Testa Python-skriptet

Verifiera att Python-skriptet fungerar:

python3 backup_scanner.py -days 7 -output ./backups

Steg 4: Starta webbservern

Alternativ A - PHP inbyggd server (utveckling):

cd /var/www/backup-scanner php -S localhost:8000

Alternativ B - Apache:

# Placera filerna i /var/www/html/backup-scanner/ # Öppna http://localhost/backup-scanner/

Alternativ C - Nginx:

Konfigurera en server block i Nginx och peka pÄ katalogen.

✅ Klart! Öppna nu webblĂ€saren och gĂ„ till din installation (t.ex. http://localhost:8000 eller http://localhost/backup-scanner/)

🌐 AnvĂ€nda Webb UI

Steg-för-steg guide

  1. Öppna webb-interfacet i din webblĂ€sare
  2. VÀlj antal dagar: Ange hur mÄnga dagar bakÄt du vill scanna (1-365)
  3. VÀlj filÀndelser: Markera de filtyper du vill inkludera i scanningen
  4. Ange output-katalog: DĂ€r backup ZIP-filen ska sparas (standard: ./backups)
  5. Klicka "Starta Scanning": VĂ€nta medan systemet scannar
  6. Ladda ner backup: NÀr scanningen Àr klar, klicka pÄ nedladdningslÀnken
💡 Tips: Scanning av hela systemet kan ta flera minuter beroende pĂ„ antal filer och lagringsenheter. Var tĂ„lmodig!

Exempel pÄ anvÀndning

Scenario Dagar FilÀndelser Beskrivning
Daglig utveckling 1 .php, .js, .py Backup av dagens kodÀndringar
Veckobackup 7 Alla FullstÀndig veckobackup
Projektdokumentation 30 .md, .txt, .pdf Backup av dokumentation
Konfigurationsfiler 14 .conf, .json, .xml Systemkonfigurationer

⌚ AnvĂ€nda Kommandoraden

Python-skriptet kan ocksÄ köras direkt frÄn kommandoraden:

GrundlÀggande syntax

python3 backup_scanner.py [OPTIONS]

TillgÀngliga parametrar

Parameter Beskrivning Standard
-days ANTAL Antal dagar bakÄt att scanna 7
-ext .EXT1 .EXT2 FilÀndelser att inkludera .php .py .txt .js .html .css .json .xml .md
-output KATALOG Output-katalog för backup Aktuell katalog

Exempel

Exempel 1: Scanna de senaste 7 dagarna (standard):

python3 backup_scanner.py

Exempel 2: Scanna de senaste 14 dagarna med specifika filÀndelser:

python3 backup_scanner.py -days 14 -ext .php .py .txt

Exempel 3: Spara backup i specifik katalog:

python3 backup_scanner.py -days 3 -output /backup/monthly

Exempel 4: Endast PHP-filer de senaste 24 timmarna:

python3 backup_scanner.py -days 1 -ext .php

⚙ Konfiguration

Anpassa standardfilÀndelser

I backup_scanner.py, Àndra rad ~16:

self.extensions = extensions or ['.php', '.py', '.txt', '.js', '.html', '.css', '.json', '.xml', '.md']

Exkludera kataloger

I backup_scanner.py, Àndra rad ~61:

dirs[:] = [d for d in dirs if not d.startswith('.') and d not in ['node_modules', '__pycache__', 'venv', 'env', 'System Volume Information', '$RECYCLE.BIN', 'din_katalog_att_exkludera']]

Ändra standard output-katalog i Webb UI

I index.php, Àndra rad ~235:

value="./backups"

🔧 Felsökning

Problem: "backup_scanner.py hittades inte"

Lösning: Kontrollera att backup_scanner.py och index.php ligger i samma katalog. AnvÀnd absolut sökvÀg om nödvÀndigt.

Problem: "exec() Àr inaktiverad"

Lösning:
  1. Öppna php.ini
  2. Hitta raden: disable_functions
  3. Ta bort "exec" frÄn listan
  4. Starta om webbservern

Problem: "Permission denied"

Lösning:
  • Linux/macOS: chmod +x backup_scanner.py
  • Kontrollera att webbservern har lĂ€srĂ€ttigheter för katalogerna
  • Ge skrivrĂ€ttigheter till output-katalogen: chmod 755 backups

Problem: "Python3 not found"

Lösning:
  • Installera Python 3: sudo apt install python3 (Linux)
  • PĂ„ vissa system: anvĂ€nd python istĂ€llet för python3
  • Ändra i index.php rad ~95: $cmd = "python " . escapeshellarg($scriptPath);

Problem: Scanning tar för lÄng tid

Tips för snabbare scanning:
  • Minska antal dagar (t.ex. 1-3 dagar istĂ€llet för 30)
  • VĂ€lj fĂ€rre filĂ€ndelser
  • LĂ€gg till fler kataloger i exkluderingslistan
  • ÖvervĂ€g att scanna specifika kataloger istĂ€llet för hela systemet

🔒 SĂ€kerhet

⚠ Viktiga sĂ€kerhetsaspekter:
  • WebbĂ„tkomst: Skydda Webb UI med .htaccess eller liknande autentisering
  • Filbehörigheter: Backup-filer kan innehĂ„lla kĂ€nslig information
  • HTTPS: AnvĂ€nd alltid HTTPS i produktionsmiljö
  • Backup-lagring: Lagra backups pĂ„ en sĂ€ker plats
  • Automatisk rensning: Radera gamla backups regelbundet

Exempel pÄ .htaccess-skydd

AuthType Basic AuthName "Backup Scanner" AuthUserFile /path/to/.htpasswd Require valid-user

Skapa .htpasswd

htpasswd -c .htpasswd username

❓ Vanliga FrĂ„gor (FAQ)

Kan jag scanna specifika kataloger istÀllet för hela systemet?

Just nu scannar verktyget alla tillgÀngliga enheter. För att scanna specifika kataloger, modifiera scan_all_drives()-funktionen i backup_scanner.py och anropa scan_directory() direkt med den önskade sökvÀgen.

Hur stora kan backup-filerna bli?

Storleken beror helt pÄ antal och storlek pÄ matchade filer. ZIP-komprimering reducerar vanligtvis storleken med 50-70% för textbaserade filer. Kontrollera diskutrymmet innan du skapar stora backups.

Kan jag schemalÀgga automatiska backups?

Ja! AnvÀnd cron (Linux/macOS) eller Task Scheduler (Windows):

# Cron exempel - daglig backup kl 02:00 0 2 * * * cd /path/to/backup-scanner && python3 backup_scanner.py -days 1 -output /backups/daily

Finns det nÄgon storleksbegrÀnsning för filer?

Nej, men mycket stora filer kan göra backup-processen lĂ„ngsam och ZIP-filen stor. ÖvervĂ€g att exkludera större binĂ€ra filer om det behövs.

PÄverkar verktyget systemets prestanda?

Under scanning anvÀnds disk I/O, vilket kan pÄverka systemet. För stora system, kör backups under lÄgtrafiktimmar eller nÀtter.

Kan jag ÄterstÀlla filer frÄn en backup?

Ja, packa upp ZIP-filen sÄ ÄterstÀlls den ursprungliga katalogstrukturen under backup_files/-mappen.

📞 Support:

För ytterligare hjÀlp eller buggrapporter, kontakta din systemadministratör eller konsultera projektets dokumentation.

← Tillbaka till Backup Scanner