flledir mi riempie tutto lo spazio

Re: flledir mi riempie tutto lo spazio

di Andrea Bicciolo -
Numero di risposte: 13
Immagine Core developers Immagine Plugin developers Immagine Translators

La configurazione del funzionamento dello script cron di Moodle in linea generale avviene lato sistema dove Moodle è installato, quindi al di fuori di Moodle stesso. La documentazione sul cron dovrebbe aiutarti ad individuare dove è stato configurato il cron nel tuo caso.

Tramite l'interfaccia web di Moodle hai invece la possibilità di impostare la frequenza delle varie elaborazioni pianificate innescate dallo script cron. Di seguito la documentazione in proposito:

In riposta a Andrea Bicciolo

Re: flledir mi riempie tutto lo spazio

di vincenzo d'alessio -

ok grazie mille.

Giusto un'altra domanda ho verificato ed il cron sembra funzioni correttamente, però la cartella trashdir sotto moodledata è sempre molto grande intorno ai 4 gb.

Nelle elaborazioni pianificate ho impostato una volta al mese le seguenti pulizie

Rimozione elementi cache scaduti 

Pulizia contesti

C'è qualche altra operazioni di pianificazione che mi consigli di eseguire periodicamente oltre a queste per far in modo di alleggerire un pò il sito, in particolare le cartelle filedir e trashdir.

Riguardo ai log è possibile eliminare solo quelli vecchi?

Dei log mi servirebbe avere solo un report dell'ultimo mese quindi è possibile cancellare i log escludendo l'ultimo mese, ad esempio tutti i log tranne il mese di maggio.

Ti ringrazio ancora dei tuoi preziosi aiuti e consigli.

Buona giornata

Saluti

Vincenzo 

In riposta a vincenzo d'alessio

Re: flledir mi riempie tutto lo spazio

di Andrea Bicciolo -
Immagine Core developers Immagine Plugin developers Immagine Translators

La cartella 'moodledata/filedir' non può diminuire di spazio a meno che tramite Moodle non vengano eliminati file non utilizzati in nessun contesto di Moodle. Ad esempio, supponiamo che tu abbia una risorsa che contiene un file video e supponiamo che tu elimini il file video dalla risorsa.  Se quel file non è utilizzato in nessun altro contesto di Moodle allora il file verrà candidato per l'eliminazione fisica dallo spazio disco e la tua 'filedir' diminurà conseguentemente l'occupazione dello spazio. Viceversa se il file video fosse utilizzato in un altra risorsa, l'eliminazione fisica dallo spazio disco del file non potrebbe essere eseguita e la tua filedir non cambierebbe l'occupazione dello spazio disco. Moodle infatti memorizza fisicamente una sola volta i file il cui contenuto ha il medesimo hash sha1. Può interessarti approfondire il meccanismo di memorizzazione dei file:

Tieni anche presente che i file spostati nella cartella 'trashdir' non vengono eliminati subito ma solo dopo qualche tempo (vedi interventi iniziali di questa discussione) e comunque solo se lo script cron gira correttamente e periodicamente.

Sul tema del mantenimento dei file di log, se i log ai quali ti riferisci sono quelli memorizzati nel database di Moodle, allora puoi stabilire il periodo di mantenimento di tali log tramite l'apposita impostazione. Di seguito la documentazione, il paragrafo di riferimento è 'keep log for':

In riposta a Andrea Bicciolo

Re: flledir mi riempie tutto lo spazio

di vincenzo d'alessio -

Ok grazie mille.

Stavo creando un'operazione pianificata su windows server 2008, cloud dove poggia la piattaforma moodle.

Ho seguito questa guida http://www.matteocavalli.it/cron-e-php-su-windows-server/

Ho creato il file.bat come dice nella stessa directory dove si trova il file php.exe, in pratica il mio php.exe si trova in C:\php .

Poi quello che dovrei mettere in star oltre che al file php.exe è lo script che in quella guida suggerisce di creare ma io in realtà c'è l'ho già sto script e sarebbe il mio cron.php situato in miosito/admin/cron.php

Quando si esegue l'operazione pianificata mi da come risultato 0x0 quindi operazione eseguita correttamente ma ho notato che operazioni del tipo attività registro -> ricalcolo della sessione di registro, programmate per il prossimo cron, dopo l'esecuzione di questa operazione pianificata comunque non viene eseguita.

Dove sto sbagliando?

il mio file .bat contiene questo

SET PATH ="C:\php";

start php.exe C:\inetpub\wwwroot\nomesito\admin\cron.php


Grazie per tutto il tuo supporto

saluti

Vincenzo

In riposta a vincenzo d'alessio

Re: flledir mi riempie tutto lo spazio

di Andrea Bicciolo -
Immagine Core developers Immagine Plugin developers Immagine Translators

A quale attività registro ti riferisci esattamente?  Forse al modulo 'contrib' "attendance register"? (https://moodle.org/plugins/pluginversions.php?plugin=mod_attendanceregister)

Te lo chiedo perché In una installazione di default di Moodle 2.8 nelle impostazioni delle elaborazioni pianificate (Amministrazione del sito > Server > Elaborazioni pianificate) un'elaborazione con quel nome non è presente ma è presente "Elaborazione in background per il registro valutatore", operazione che si riferisce tuttavia al componente 'core' "Registro del valutatore"

Prova anche a farti scrivere su disco un log della elaborazione del cron in modo da poterne esaminare i risultati.

In riposta a Andrea Bicciolo

Re: flledir mi riempie tutto lo spazio

di vincenzo d'alessio -

Si si proprio quello è il modulo.

Proverò a fare così, grazie per i tuoi preziosi consigli

Saluti

Vincenzo

In riposta a vincenzo d'alessio

Re: flledir mi riempie tutto lo spazio

di Andrea Bicciolo -
Immagine Core developers Immagine Plugin developers Immagine Translators

Se il modulo è quello tieni presente che non è ancora disponibile una release per Moodle 2.7 e 2.8 ed a partire da Moodle versione 2.7 viene utilizzato un nuovo sistema di memorizzazione nelle tabelle dei log rispetto a Moodle 2.6.

Nella documentazione del modulo "Attendance register" viene suggerito un possibile "workaround" che tuttavia non ho avuto occasione di provare direttamente e quindi ti consiglio di provarlo bene nel tuo scenario di utilizzo, anche perché adottando il suggerimento rischi di avere un carico maggiore sul sistema:

In riposta a Andrea Bicciolo

Re: flledir mi riempie tutto lo spazio

di vincenzo d'alessio -

mmmm si si lo avevo letto sto link che mi hai scritto, il modulo register funziona anche bene, calcola bene la sessione, se effettuo clicco ricalcola sessione lo fa correttamente, se imposto ricalcola sessione al prossimo cron, ed eseguo il cron lato web, facendo nomesito/admin/cron.php anche se ogni tanto va in time out dopo 4,5 refresh lo esegue e mi esegue il calcolo delle sessioni di registro.

Avevo qualche dubbio sul fatto che mi potesse creare un sovraccarico di sistema.

Un modulo di registro più compatto per la versione di moodle 2.7 e 2.8 non esiste?

Immagina che la un fad che gestisco, ha circa 30 mila utenti ed il numero è destinato ad incrementarsi sempre di più.

Sto optando per impostare operazioni pianificate in modo che periodicamente vengono elaborate determinate pulizie però le dimensione delle tabelle aumentano sempre ed anche quelle delle cartelle in moodledata.

Intervenendo direttamente sul database, applicando una query di delete per le tabelle log, log history, grade, e grade history si compromette l'utilizzo della piattaforma?


Grazie saluti

In riposta a vincenzo d'alessio

Re: flledir mi riempie tutto lo spazio

di Andrea Bicciolo -
Immagine Core developers Immagine Plugin developers Immagine Translators

Agire direttamente sul database raramente è consigliabile, per le politiche di conservazione di una serie di dati, inclusi i log, prova  fare riferimento al link che ti avevo già fornito:

In riposta a Andrea Bicciolo

Re: flledir mi riempie tutto lo spazio

di vincenzo d'alessio -

Avevo già seguito questo link,  ho disabilitato la storia delle valutazioni però questo non avendolo fatto all'inizio, prima di disabilitare la tabella di history mi ha comunque riempito la tabella.

Ho impostato inoltre elimina storia delle valutazioni dopo 30 giorni, facendo questo tra 30 giorni mi cancellerà tutto il contenuto di quella tabella?

Grazie saluti

In riposta a Andrea Bicciolo

Re: flledir mi riempie tutto lo spazio

di vincenzo d'alessio -

Ciao Andrea

una domanda, sul mio server in cloud dove poggia la piattaforma moodle, ho creato una operazione pianificata per l'esecuzione del cron.

Per fare ciò ho letto che nella cartella php dove si trovano i file php e php.exe si deve creare un file.bat dove in questo file si devono inserire le seguenti stringhe:

- SET PATH = "C:\Program Files (x86)\PHP\v5.6";  (Dove questo sarebbe il mio path dove si trova il file.bat creato)

- start php -q /inetpub/vhost/miositomoodle.it/admin/cron.php   (comando da eseguire)

Su quest'ultimo ho dei dubbi in quanto l'esecuzione dell'operazione pianificata mi da come risultato 0x0 cioè che l'operazione è stata eseguita però se vado nella sezione notifiche del mio moodle mi dice che il cron non viene eseguito da 24ore il che vuol dire che quel mio file.bat non funziona bene.


Su un'altra piattaforma installata in hosting, dove tengo l'accesso con cpanel nelle impostazioni avanzate/ processi cron ho settato l'esecuzione del cron inserendo questa stringa 

0,30****php -q /home/root/public_html/sitomio.it/admin/cron.php
e funziona tutto correttamente, in cloud volevo creare una cosa simile da impostazione pianificate come sopra descritto solo che qualcosa non va a buon fine.

Sapresti darmi qualche suggerimento.

Saluti

Vincenzo

In riposta a vincenzo d'alessio

Re: flledir mi riempie tutto lo spazio

di Andrea Bicciolo -
Immagine Core developers Immagine Plugin developers Immagine Translators

Il secondo esempio che riporti, sulla base della sintassi e dei percorsi, credo sia relativo ad un sistema di tipo Linux.

Sul tema Windows, nella documentazione di Moodle trovi una pagina dedicata al cron su Windows con diversi esempi che penso tu possa adattare al tuo caso.

Tieni comunque presente che Moodle 2.x fornisce due script cron, uno da invocare via web, anche tramite comandi di tipo "wget" ("admin/cron.php"), e l'altro da invocare via CLI ("admin/cli/cron.php").  La differenza è spiegata in questo paragrafo della documentazione:

Ad esempio se via CLI lanci un comando di questo tipo (esempio tratto da una macchina Linux) su un Moodle versione  2.7:

# /usr/bin/php -f /var/www/mymoodle/admin/cron.php

l'output che otterrai è 

"ERROR: This script no longer supports CLI, please use admin/cli/cron.php instead"

Invece con il comando

# /usr/bin/php -f /var/www/mymoodle/admin/cli/cron.php

Il cron partirà regolarmente.  Al di la del sistema operativo utilizzato, la logica di funzionamento è la medesima.

Da notare che il percoro

/var/www/mymoodle/
è fittizio e dovrai adattarlo in accordo alle peculiarità del tua installazione.

Una volta individuato il comando per invocare il cron per il tuo ambiente, provalo a mano in modo da poterne valutare gli esiti prima di inserirlo nelle operazioni pianificate del sistema operativo che utilizzi.  Da ricordare che è sempre buona norma far scrivere un log dell'elaborazione del cron.

In riposta a Andrea Bicciolo

Re: flledir mi riempie tutto lo spazio

di vincenzo d'alessio -

Salve Andrea

la piattaforma che gira su hosting linux gira alla perfezione, mentre quella su windows no.

Io in pratica ho creato un'operazione pianificata in cloud dove poggia moodle, in questa operazione richiamo ogni 5 minuti un file che creato "cron.bat".

In questo file, vedendo da alcuni link consigliati da te ed altri in rete, ho inserito queste 2 istruzioni

SET PATH = "C:\Program Files (x86)\PHP\v5.6";        // che sarebbe il mio percorso della cartella php

start php.exe -f c:\inetpub\vhost\mysito.it\admin\cron.php > c:\inetpub\vhost\mysito.it\admin\logcron.log

Mi sono accorto che il file logcron che crea è vuoto quindi qualcosa non va a buon fine.

In queste 2 istruzioni dove sto sbagliando?


Grazie

Saluti

In riposta a Andrea Bicciolo

Re: flledir mi riempie tutto lo spazio

di vincenzo d'alessio -

Ho provato facendo in questo modo

SET PATH = "C:\Program Files (x86)\PHP\v5.6";        // che sarebbe il mio percorso della cartella php

start php.exe -f c:\inetpub\vhost\mysito.it\admin\cli\cron.php > c:\inetpub\vhost\mysito.it\admin\cli\logcron.log

Ora funziona, ho visto che eseguiva tutte le istruzioni a riga di comanda, si è tolta pure la scritta nelle notifiche, la scritta che diceva che il cron non era stato eseguito da almeno 24 ore l'unica anomali che non mi ha scritto il file di log, lo ha creato ma è vuoto.

Sarà l'istruzione di scrittura del file errata? Ho visto che bastava mettere la parentesi angolare ">" con relativo percorso e nome del file.

Saluti