Cron Job Command Per eliminare i file 0 byte


0

Ho bisogno di avere un Cron Job, che quando viene eseguito automaticamente elimina tutti i file all'interno di una cartella che sono esattamente 0 byte.

Lo script che sto usando consente agli utenti di inserire il loro nome utente in modo da scaricare il loro file. Tuttavia, voglio che lo script sia di base, quindi non c'è nulla che controlli per vedere se il file esiste. Se non esiste, non carica nulla, ma carica comunque un file vuoto che non contiene nulla ed è esattamente 0 byte.

Non riuscivo a trovare nulla al riguardo, ma avrei potuto cercare le cose sbagliate perché non sono esattamente sicuro di come si chiamerebbe.

Risposte:


1

Per trovare tutti i file a 0 byte nella directory , è possibile utilizzare questo comando:

find directory -maxdepth 1 -size 0

Rimuovere l' -maxdepth 1interruttore se si desidera cercare anche nelle sottodirectory.

Per eliminare quei file, basta aggiungere un -deleteinterruttore alla fine:

find directory -maxdepth 1 -size 0 -delete

Provandolo ora, ti farò sapere i risultati.
Kyle,

Non sembra funzionare per me, tutto quello che devo fare è sostituire la directory con la posizione esatta, giusto? So che la directory è corretta, cos'altro potrebbe andare storto?
Kyle,

Hai provato direttamente dalla riga di comando o come cron job? Per una voce crontab, potrebbe essere necessario specificare il percorso completo di find. Per eseguire il debug di un processo cron, aggiungere 2>> pathtologfilee controllare il file di registro per i messaggi di errore.
Dennis,

(1) Alcune versioni findsupportano un -emptypredicato (noto anche come "primario") -size 0. (2) Non tutte le versioni di findsupporto -delete. -exec rmè più portatile.
Scott,

1
Quando verrà eseguito questo cron job? Se verrà eseguito nel cuore della notte, quando gli utenti sono assolutamente sicuri di non essere attivi, ignora questa parte successiva. Ma se verrà eseguito in un momento in cui gli utenti potrebbero essere attivi, suggerisco di aggiungere -mtime +1, quindi il comando gestirà solo i file che hanno almeno un giorno di vita. Questa precauzione è quella di proteggere dalle condizioni di competizione in cui un utente inizia a caricare un file, quindi il processo cron viene eseguito ed eliminato, quindi lo script dell'utente termina il caricamento del file, ma troppo tardi; è già stato cancellato.
Scott,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.