[LINUX] Gérez les générations de rotation des journaux avec un script shell.

Si vous souhaitez conserver 3 générations, vous pouvez utiliser le script one liner suivant. (L'idée est de laisser 3 générations → lire comme supprimant tous les fichiers autres que les 3 générations que vous souhaitez conserver)

(Lors de l'effacement du plus ancien dans le temps) ls -1rt | head -n -3 | xargs rm -rf

(Lors de l'effacement de la date la plus ancienne de la chaîne de caractères du journal, par exemple testlog20200701) ls -1 | head -n -3 | xargs rm -rf


Description (lors de l'effacement de l'ancien à en juger par la chaîne de caractères du journal)

  1. Placez une bûche factice

touch testlog2020070{1..9}

  1. Confirmation

ls -la

-rw-r - r--. 1 racine racine 0 17 mai 16:40 testlog20200701 -rw-r - r--. 1 racine racine 0 17 mai 16:40 testlog20200702 -rw-r - r--. 1 racine racine 0 17 mai 16:40 testlog20200703 -rw-r - r--. 1 racine racine 0 17 mai 16:40 testlog20200704 -rw-r - r--. 1 racine racine 0 17 mai 16:40 testlog20200705 -rw-r - r--. 1 racine racine 0 17 mai 16:40 testlog20200706 -rw-r - r--. 1 racine racine 0 17 mai 16:40 testlog20200707 -rw-r - r--. 1 racine racine 0 17 mai 16:40 testlog20200708 -rw-r - r--. 1 racine racine 0 17 mai 16:40 testlog20200709

  1. Extraction de la cible de suppression Je veux garder 20200707 à 20200709 → (Remplacer testlog20200701 à 20200706 je veux supprimer)

ls -1 | head -n -3

testlog20200701 testlog20200702 testlog20200703 testlog20200704 testlog20200705 testlog20200706

  1. Supprimez le journal extrait

ls -1 | head -n -3 | xargs rm -rf

Vérification

ls -la

testlog20200707 testlog20200708 testlog20200709

J'ai pu quitter les 3 générations souhaitées.

*) (Lors de l'effacement du plus ancien dans le temps) est réalisé en exécutant avec ls -1rt. Option t Trier par heure Option r Trier en sens inverse


On suppose que la rotation du journal elle-même est effectuée à l'aide du standard Linux logrotate.d, et que seule la partie supprimée est effectuée par le script shell. (Étant donné que le script de suppression de logrotate.d est traité sous la forme d'il y a x jours, si le script de suppression ne fonctionne pas pour une raison quelconque, le journal peut rester)

Recommended Posts

Gérez les générations de rotation des journaux avec un script shell.
Afficher les prévisions météorologiques du jour avec le script shell
Essayez de programmer avec un shell!
[Linux] Copie des données de Linux vers Windows avec un script shell
Traitez les fichiers du dossier dans l'ordre avec le script shell
[Linux] Ecrire un outil de déploiement à l'aide de rsync avec un script shell
Automatisez la construction d'environnement avec ShellScript
Ecrire un script batch avec Python3.5 ~
Traitez le contenu du fichier dans l'ordre avec un script shell
[Ubuntu] Comment exécuter un script shell
Créez un système stellaire avec le script Blender 2.80
Créer un script shell pour écrire un journal
Transférez les journaux des périphériques réseau vers le serveur syslog et gérez les générations avec logrotate
Principes de base du script Shell # 2
Effacer et générer des fichiers de numéro de série avec un script shell
Lancez le shell pendant que le script Python est en cours d'exécution
Essayez de créer un problème FizzBuzz avec un programme shell
Script Shell pour mettre Webmin dans Alpine Linux
[Piyopiyokai # 1] Jouons avec Lambda: création d'un script Python
Conseils pour ouvrir une scène avec une référence brisée dans un script
Format A4 avec python-pptx
Remplacer la commande dans le script shell
Grattage avec coquille tremblante
Script Shell @ mémo d'étude
Décorer avec un décorateur
Script shell qui numérote les noms en double lors de la création de fichiers
J'ai remplacé le livre de recettes Windows PowerShell par un script python.
[Django] Gérez les paramètres comme l'écriture dans settings.py avec un modèle
Comment exécuter un programme Python à partir d'un script shell
[Python, script shell, développement d'équipe] Créez un dépôt Git astucieux
Créons un script qui s'enregistre avec Ideone.com en Python.
Accédez au fichier avec un chemin relatif à partir du script d'exécution.
Comportement en donnant une liste avec shell = True dans le sous-processus
Téléchargez des images prises avec une caméra d'action avec un script Mapillay
Je n'oublierai jamais comment écrire un script shell, n'oubliez pas! !!