Il mio script di bash produce un file di registro. Ora mi piacerebbe implementare alcuni rotazione dei file di registro.
Diciamo che la prima volta si chiama somelog.log, la prossima volta che viene rinominato somelog.log.1 e il nuovo file di registro somelog.log.
La terza volta il nuovo registro è somelog.log di nuovo, ma somelog.log.1 viene rinominato somelog.log.2 e il vecchio somelog.log a somelog.log.1.
Sarei in grado di concedere un massimo di es. 5.
Questo è già fatto prima (script di esempio), qualsiasi suggerimento. Apprezzo qualsiasi consiglio.Rotazione del file di registro dello script Bash
7
A
risposta
2
Prova questa funzione di bash, ci vogliono due parametri:
- numero di massimo di megabyte del file deve superare per essere ruotato (altrimenti è lasciare intatta)
- percorso completo del nome del file.
fonte:
function rotate() {
# minimum file size to rotate in MBi:
local MB="$1"
# filename to rotate (full path)
local F="$2"
local msize="$((1024*1024*${MB}))"
test -e "$F" || return 2
local D="$(dirname "$F")"
local E=${F##*.}
local B="$(basename "$F" ."$E")"
local s=
echo "rotate msize=$msize file=$F -> $D | $B | $E"
if [ "$(stat --printf %s "$F")" -ge $msize ] ; then
for i in 8 9 7 6 5 4 3 2 1 0; do
s="$D/$B-$i.$E"
test -e "$s" && mv $s "$D/$B-$((i+1)).$E"
# emtpy command is need to avoid exit iteration if test fails:
:;
done &&
mv $F $D/$B-0.$E
else
echo "rotate skip: $F < $msize, skip"
fi
return $?
}
0
ho appena fatto uno script bash per questo: https://github.com/lingtalfi/logrotator
Esso controlla fondamentalmente dimensione del file di registro e se si supera una soglia arbitraria, copia il file di registro in una directory di registro.
È compatibile cron o puoi anche utilizzarlo manualmente.
Un tipico comando si presenta così:
> ./logrotator.sh -f private/log -m {fileName}.{datetime}.txt -v
Problemi correlati
- 1. Ottimizzazione dello script Bash per l'attesa di una stringa specifica nei file di registro
- 2. Script di Bash per l'archiviazione dei file di registro
- 3. Impostazioni di rotazione del file di registro Supervisord
- 4. Rotazione del registro in modalità Rails DEVELOPMENT?
- 5. Determinare il percorso dello script BASH esecuzione
- 6. Come aggiungere l'indice di rotazione PRIMA dell'estensione del file nel nome file di registro
- 7. riferimento alla posizione dello script ant all'interno del file ant
- 8. Script BASH: selezione file whiptail
- 9. Come mantenere il file di registro a rotazione come per dimensione del file?
- 10. Output del registro di script personalizzato Teamcity
- 11. Bash Script - Leggi file binario
- 12. File di origine in uno script bash
- 13. Rotazione del file di registro dei dati (loggc) con logrotate non funziona correttamente
- 14. Accedere agli argomenti dello script Bash all'interno di una funzione
- 15. Memorizzazione di file all'interno degli script BASH
- 16. Uso dello "schermo alternativo" in uno script bash
- 17. Lo script Bash legge solo la prima riga del file
- 18. Utilizzo del comando find in bash script
- 19. Errore di script Bash Catching
- 20. Rotazione/cancellazione del registro in Ruby on Rails
- 21. È possibile eseguire la rotazione del registro orario in Winston?
- 22. Visualizzazione dello script .R in output del file .Rmd
- 23. BASH come eseguire un comando sulla terminazione dello script?
- 24. Registro di Django rotante e proprietà del file di registro
- 25. Bash Script: contare le righe uniche nel file di
- 26. Git commit bash script
- 27. Bash: eseguire script su file salvati?
- 28. script bash per modificare file xml
- 29. parametri di script in Bash
- 30. Esecuzione di uno script bash al momento della creazione del file
uomo [logrotate] (http://linux.die.net/man/8/logrotate)? –
Già risposto. [Qui] [1] [1]: http://stackoverflow.com/questions/3690936/change-file-name-suffixes-using-sed/3691279#3691279 –