Ragazzi avrei bisogno di un codice in php ( o se è possibile in altri codici) che mi calcoli: 1 lo spazio totale del mio server(quindi dello spazio che ad esempio"aruba" mi offre) 2 lo spazio occupato 3 lo spazio libero....SI PUO FARE? è POSSIBILE?
Ragazzi avrei bisogno di un codice in php ( o se è possibile in altri codici) che mi calcoli: 1 lo spazio totale del mio server(quindi dello spazio che ad esempio"aruba" mi offre) 2 lo spazio occupato 3 lo spazio libero....SI PUO FARE? è POSSIBILE?
si ... parzialmente ... ma non sarebbe preciso e sarebbe molto lento
The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand
sai il codice? sai se esistono altri metodi?
scusami, ma come fai a chiedermi se esistono altri metodi se non ti ho spiegato come fareOriginariamente inviato da felicegattuso00
sai il codice? sai se esistono altri metodi?
Il codice non l'ho spiaccicato in testa, so come si potrebbe fare ad implementare una cosa del genere, ma ti ripeto ... è imprecisa
Comunque, il tutto sta nel calcolare la dimensione, file per file/cartella per cartella dei file presenti nella tua root, il che vuol dire che allo script devi dire quanto spazio hai complessivamente e qual'è il percorso alla root dei tuoi file (che NON coincide con la document root e di solito la contiene)
Se sei su hosting linux ed hai i permessi di esecuzione si puoi utilizzare il comando du -s (tramite un exec, backtick, system, shellexec o una delle tante alternative) per effettuare la stessa operazione che dovrebbe fare php ... sarebbe sempre un calcolo impreciso ma sicuramente più veloce
l'imprecisione è dovuta al fatto che alcuni tuoi file potrebberò stare, ad esempio, nella cartella dei log o tra i backup ... e a questi non hai accesso tramite scripting ... questa cosa ti blocca a priori
The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand
Ci sarebbe la funzione disk_free_space(), purtroppo non funziona sui file remoti, perché si deve avere accesso al file system del server dove viene eseguita!![]()
![]()
Scusami, ma quella funzione non c'entra assolutamente nulla: restituisce lo spazio libero complessivo del disco, ma è cosa BEN DIVERSA dallo spazio libero per l'account dell'hostingOriginariamente inviato da alcio74
Ci sarebbe la funzione disk_free_space(), purtroppo non funziona sui file remoti, perché si deve avere accesso al file system del server dove viene eseguita!![]()
![]()
Inoltre non va affatto eseguita "su file remoti" ma su percorsi locali dato che lo script che effettua i conteggi verrebbe eseguito sullo spazio web.
The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand
ma in sostanza qualcuno sa come si faccia?![]()
Scusa, ma tu i post li leggi? oppure li salti a pié pari?Originariamente inviato da felicegattuso00
ma in sostanza qualcuno sa come si faccia?![]()
Ti ho dato la risposta sul "come si fa" ... se vuoi il codice bello e pronto allora aspetta qualcun'altro o cerca su google bene
The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand
Chiedo venia, avevo letto male la prima domanda!Originariamente inviato da daniele_dll
Scusami, ma quella funzione non c'entra assolutamente nulla: restituisce lo spazio libero complessivo del disco, ma è cosa BEN DIVERSA dallo spazio libero per l'account dell'hosting
Inoltre non va affatto eseguita "su file remoti" ma su percorsi locali dato che lo script che effettua i conteggi verrebbe eseguito sullo spazio web.
![]()
Ciao Daniele,
con il tuo esempio hai però solo risposto alla domanda "spazio occupato" per lo spazio libero e per lo spazio totale (che è la somma dei primi due) non c'è modo di risalire in alcun modo.
Quindi in realtà non c'è modo di risolvere questo problema.
La dimensione dello spazio deve essere conosciuta a priori, dopodichè ti puoi ricavare la misura dello spazio libero sottraendo quella che trovi come spazio occupato.
Anche se quello mostrato da Daniele è l'unico modo di svolgere questa operazione resta il fatto che tale processo è estremamente impreciso, infatti spesso lo spazio occupato sul tuo spazio web non è misurato sulle dimensioni NETTE dei file in byte, ma sullo spazio effettivamente occupato in CILINDRI, quindi arrotondato (per ciascun file) alla dimensione del cilindro più grande.
Ad esempio se lo spazio è partizionato con cilindri da 1Mb allora:
- 1 file che è grande 50kb occuperà 1Mb
- 1 file che è grande 10kb occuperà 1Mb
- 1 file che è grande 800kb occuperà 1Mb
- 1 file che è grande 1.2Mb occuperà 2Mb
A seconda del tuo numero di file questa imprecisione può diventare gigante.
Infatti se moltiplichi l'errore medio (1/2 dimensione del cilindro) * il numero di file effettivamente presenti sul tuo spazio puoi ottenere una perdita netta anche di diverse decine di Mb.
PS: gli hoster NON possono adottare una partizione con cilindri troppo piccoli perchè l'accesso al disco fisso aumenterebbe drasticamente riducendo le prestazioni del server, pertanto spesso le partizioni degli hoster usano cilindri molto grandi per questioni di performance.