Mon script bash génère un fichier journal. Maintenant, je voudrais mettre en place une rotation du fichier journal.
Disons que la première fois qu'il est appelé somelog.log, la prochaine fois, il est renommé somelog.log.1 et le nouveau fichier journal de somelog.log.
La troisième fois, le nouveau journal est somelog.log à nouveau, mais somelog.log.1 est renommé somelog.log.2 et l'ancien somelog.log à somelog.log.1.
Je serais en mesure d'accorder un maximum de par exemple 5.
Est-ce fait avant (exemple de script), des suggestions. J'apprécie tout conseil.Rotation du fichier journal du script Bash
7
A
Répondre
2
Essayez cette fonction bash, il prend deux paramètres:
- nombre de méga-octets au maximum le fichier doit dépasser à rotation (est par ailleurs laisser intacte)
- chemin complet du nom de fichier.
source:
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
Je viens de faire un script bash pour que: https://github.com/lingtalfi/logrotator
Il vérifie essentiellement la taille de votre fichier journal, et si elle dépasse un seuil arbitraire, il copie le fichier journal dans un répertoire de journal.
Il est cron amical, ou vous pouvez l'utiliser manuellement aussi.
Une commande typique ressemble à ça:
> ./logrotator.sh -f private/log -m {fileName}.{datetime}.txt -v
Questions connexes
- 1. Rotation du journal d'accès Python Cherrypy
- 2. Sortie du script Bash indenté
- 3. Alias bash global du script
- 4. Extrait du fichier journal
- 5. Script Bash: obtention de la sous-liste du fichier
- 6. Configuration du fichier journal maven
- 7. Recherche du fichier journal Log4J
- 8. L'exécution du script bash de IIS6
- 9. Déterminer le chemin du script BASH exécution
- 10. Erreurs sur le script bash du débutant
- 11. Nom du processus de script Bash regex
- 12. Obtenir horodatage hexadécimal du script bash
- 13. SH/BASH - Numérise un fichier journal jusqu'à ce que du texte apparaisse, puis quitte. Comment?
- 14. recherche de fichier script bash
- 15. configuration de weblogic nom de fichier journal pour la rotation
- 16. Modification du fichier de configuration Apache à l'aide du script bash
- 17. script shell pour analyser le fichier journal
- 18. Codage du script shell du fichier
- 19. Limite Derby Taille du fichier journal
- 20. résultat de fichier journal du chargeur SQL
- 21. Récupérer les données perdues du fichier journal?
- 22. emplacement du fichier journal dans solr
- 23. taille du fichier journal est énorme
- 24. analyse du fichier journal - utilisation du graphe java et plot
- 25. Exemple de regex du fichier journal du serveur Web YQL
- 26. UIWebView Rotation du contenu
- 27. Problème lors de l'exécution du fichier bash
- 28. de script Bash pour lire un fichier
- 29. Aide pour l'exécution du script bash depuis PHP
- 30. aide du script shell - vérification du fichier existant
homme [logrotate] (http://linux.die.net/man/8/logrotate)? –
Déjà répondu. [Ici] [1] [1]: http://stackoverflow.com/questions/3690936/change-file-name-suffixes-using-sed/3691279#3691279 –