Script richiesto da Paladino per il trasferimento e filtro automatico delle timbrature dal PC 10.0.200.218 a una cartella condivisa.
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

3.1 KiB

Guida Rapida

Utilizzo Base

# Usa modalità da config (hourly o daily)
python file_processor.py

# Processa una data specifica (ignora execution_mode)
python file_processor.py 15-03-2025

# Forza elaborazione
python file_processor.py --force

# Config alternativo
python file_processor.py --config altro_config.json

# Salta controllo giorno precedente (solo hourly)
python file_processor.py --no-previous-day-check

Configurazione (config.json)

{
    "execution_mode": "hourly",
    "daily_execution_hour": 3,
    "input": {
        "host": "192.168.1.100",
        "share": "SharedFolder",
        "path": "input",
        "username": "user",
        "password": "pass",
        "domain": ""
    },
    "output": {
        "locale": "no",
        "local_path": "./output",
        "host": "192.168.1.200",
        "share": "OutputFolder",
        "path": "output",
        "username": "user",
        "password": "pass",
        "domain": ""
    },
    "error_path": "./errors"
}

Execution mode:

  • "hourly" → Controlli multipli durante il giorno (ieri + oggi)
  • "daily" → Una sola esecuzione al giorno (solo ieri, consolidamento finale)

Daily execution hour: Ora configurata per modalità daily (default: 3)
Output locale: "locale": "yes" → scrive in local_path
Output remoto: "locale": "no" → scrive su PC remoto
Percorso errori: "error_path": "./errors" → directory per file di errore

Modalità di Esecuzione

HOURLY (Controlli Multipli)

  • Ogni ora controlla ieri + oggi
  • Usa file di stato (.state_GGMMAAAA.json)
  • Skip se file non modificato
  • FASE 1: consolida ieri, FASE 2: processa oggi

Cron configurazione:

# Ogni ora
0 * * * * cd /path/to/script && python3 file_processor.py >> /var/log/file_processor.log 2>&1

DAILY (Consolidamento Giornaliero)

  • Una sola esecuzione al giorno
  • Processa SOLO il giorno precedente (consolidamento finale)
  • NON usa file di stato
  • Ignora il file di oggi (verrà processato domani)
  • NON crea output per oggi (rimarrebbe vuoto)

Cron configurazione:

# Alle 03:00 ogni giorno (o all'ora configurata in daily_execution_hour)
0 3 * * * cd /path/to/script && python3 file_processor.py >> /var/log/file_processor.log 2>&1

Funzionalità

  • Legge file dal PC remoto (nome: GGMMAAAA.txt)
  • Filtra righe che iniziano con 01003
  • Scrive output (locale o remoto)
  • HOURLY: Controlla modifiche con hash, skip se non modificato
  • DAILY: Processa sempre il giorno precedente, ignora oggi

Consolidamento Giorno Precedente

HOURLY: Ogni esecuzione controlla PRIMA il file di ieri, poi quello di oggi DAILY: Processa SOLO il file di ieri (consolidamento finale alle 03:00)

Gestione Errori

  • File input non trovato → crea errorGG.txt in error_path (tipo: input)
  • Errore scrittura output → crea errorGG.txt in error_path (tipo: output)
  • Nessuna stringa 01003 → crea file output vuoto (normale)
  • Directory errori creata automaticamente se non esiste

Requisiti

Linux: sudo apt-get install smbclient
Windows: Solo Python 3.x