Effettuare backup tramite PHP
Software » Effettuare backup tramite PHP
30/08/2012 - 364
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.