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)
-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
testlog20200701 testlog20200702 testlog20200703 testlog20200704 testlog20200705 testlog20200706
Vérification
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