OldWildWeb Logo

Effettuare backup tramite PHP

Come effettuare backups tramite PHP


Pack, la soluzione per effettuare backup di siti web o in locale

Molti web master, amministratori di sistema o semplici utenti si scontrano spesso con il problema dei backup, non sempre è facile scegliere un formato dati che sia facilmente utilizzabile/implementabile via web volendo anche in automatico, che sia multi piattaforma, che sia semplice da utilizzare, veloce, efficiente.

Il formato .pack è stato realizzato in seguito alle esigenze qui sopra riportate in particolare avevo bisogno di trovare un metodo veloce per effettuare backup di interi siti web utilizzando il PHP creando un solo file unico contenente tutto il contenuto di un sito web.

Il classico backup via ftp di tutti i files e le cartelle risulta essere troppo lento e inaffidabile, inoltre i limiti degli account ftp non consentono di vedere tutti i files e cartelle nel caso percorsi con molti inodes all'interno.

Il formato .pack è un formato semplicissimo ed essenziale, supporta le seguenti caratteristiche:

-Creazione di archivi .pack di files e cartelle nei sistemi operativi Windows o Linux tramite applicazioni in C++ (linux), C# .Net (windows) oppure PHP.

-Compressione tramite l'implementazione di lzw in C++ (funzione non supportata nella versione PHP)

Quali sono le differenze tra un archivio .pack e un archivio classico es .tar?

L'archivio .pack è essenziale non prevede il calcolo di nessun tipo di checksum, non gestisce i permessi dei files, è facilmente implementabile con ogni linguaggio di programmazione, la sua essenzialità lo rende molto veloce ed è ideale per le applicazioni di backup/ripristino.

Specifiche dell'archivio pack

L'archivio pack non è altro che un file contenente 4 tipo di informazioni.
Queste informazioni sono posizionate secondo un ordine preciso all'interno nel file subito dopo il primo byte che indica le dimensioni del dizionario utilizzate per comprimere i files e sono:

Type, Indica se si tratta di una cartella o di un file.
Lunghezza nome, indica la lunghezza del nome della cartella o del file.
Nome del file o della cartella, è il nome del file o della cartella della lunghezza nome.
Dimensione del file, informazione presente solo se il tipo è un file.
Contenuto del file, il contenuto del file.

Byte n0 - Compression dictionary bits

Folder
Inode type (1 byte) | name_len (2 bytes unsigned integer Big Endian) | folder name

File
Inode type (1 byte) | name_len (2 bytes unsigned integer Big Endian) | file name | File Len (5 bytes long integer Big Endian) | File content

Type 0 - File
Type 2 - Compressed File ULZW
Type 1 - Folder

Qui sotto invece i download link per le versioni C++ Linux, PHP e C# .Net.

NOTA:
Il software potrebbe presentare bugs, non viene garantito il corretto funzionamento.
Gli autori non si assumono nessuna responsabilità in caso di danni derivati dall'uso del software.



Pack - Software per concatenare files