Maison >Opération et maintenance >exploitation et maintenance Linux >Rotation des journaux d'exploitation et de maintenance Linux - rotation des journaux nginx
Il existe un service de rotation très utile sur le système Linux-logrotate. Grâce à ce service, les fichiers journaux peuvent être gérés en rotation. Lorsque le fichier journal est trop volumineux, il peut être découpé en plusieurs petits fichiers journaux et compressé. Les fichiers journaux par défaut access.log et error.log de nginx ne tourneront pas d'eux-mêmes. Par conséquent, logrotate est souvent utilisé pour faire pivoter les journaux nginx.
logrotate
L'exécution du programme logrotate est exécutée quotidiennement dans les tâches planifiées du système.
# cat /etc/cron.daily/logrotate #!/bin/sh /usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status ……
Ensuite, jetons un coup d'œil au fichier de configuration de logrotate /etc/logrotate.conf.
# 通过man logrotate查看更多信息 # 下面是默认配置 weekly <=== 默认一周进行一次轮替操作 rotate 4 <=== 默认保存4份日志文件 create <==== 当轮替完成后,创建一个新的日志文件 dateext <=== 轮替的文件名前加上日期以便管理 #compress <=== 默认对轮替的文件不进行压缩,如果想压缩,就把#去掉 #将/etc/logrotate.d目录下的文件加载进来 include /etc/logrotate.d # 下面是两个日志文件轮替的规则 /var/log/wtmp { <=== 指定文件名 monthly <=== 一个月进行一次轮替 create 0664 root utmp <=== 新的日志文件权限及所有人,所属组设置 minsize 1M <=== 日志文件至少有1M时候才进行轮替 rotate 1 <=== 只保留一份日志文件 } /var/log/btmp { missingok <=== 如果日志文件不存在,则不报错,直接忽略 notifempty <=== 如果日文文件是空的则不进行轮替 monthly create 0600 root utmp rotate 1 }
Après avoir compris le fichier de configuration de logrotate, nous pouvons créer nous-mêmes un journal pour la pratique de la rotation. Tout d'abord, nous préparons un fichier journal
# ll logrotate_learn.log -rwx------ 1 www www 223288003 Nov 12 09:05 logrotate_learn.log
Ici, nous ferions mieux d'ajouter l'attribut -a au fichier journal, afin de pouvoir uniquement y ajouter du nouveau contenu.
# chattr +a logrotate_learn.log
Ensuite, nous devons réfléchir aux règles de rotation du fichier journal. Ici, nous prévoyons de faire pivoter et de compresser les fichiers pivotés une fois par semaine, et de les faire pivoter uniquement lorsque la taille du fichier dépasse 10 Mo. De plus, nous conserverons 7 fichiers journaux. Ici, il y a autre chose à noter. Étant donné que le fichier possède l'attribut a, l'attribut a doit être supprimé avant la rotation, puis ajouté une fois la rotation terminée. Il nous faut donc maintenant écrire les règles de configuration
vim /etc/logrotate.d/logrotate_learn # 轮替练习 /root/logrotate_learn.log { missingok notifempty weekly rotate 7 size=10M create 0700 www www compress sharedscripts prerotate /usr/bin/chattr -a /root/logrotate_learn.log endscript sharedscripts postrotate /usr/bin/chattr +a /root/logrotate_learn.log endscript }
Ensuite, faisons la rotation.
# logrotate [-vf] logfile 选项与参数: -v :启动显示模式,会显示logrotate 运作的过程喔! -f :不论是否符合,强制每个日志文件都进行rotate 的动作! # logrotate -v /etc/logrotate.d/logrotate_learn reading config file /etc/logrotate.d/logrotate_learn Allocating hash table for state file, size 15360 B …… # ll logrotate_learn.log* -rwx------ 1 www www 0 Nov 12 10:15 logrotate_learn.log -rwx------ 1 www www 20974585 Nov 12 10:15 logrotate_learn.log.1.gz
Effectuer la gestion de la rotation des fichiers journaux nginx
Comment effectuer la gestion de la rotation des fichiers journaux après avoir appris Enfin, nous entrons maintenant dans l’exercice de combat proprement dit.
# ll /www/wwwlogs/ total 1852452 -rwx------ 1 www www 350288 Nov 12 02:50 access.log -rwx------ 1 www www 14016937 Nov 11 22:44 isunshinenet.com.error.log -rwx------ 1 www www 300416647 Nov 11 22:44 isunshinenet.com.log -rwx------ 1 www www 0 Sep 30 09:57 nginx_error.log
Nous devons gérer ces quatre fichiers journaux en rotation. Tout d'abord, créez le fichier de configuration.
# 对nginx日志文件进行呢轮替 /www/wwwlogs/access.log /www/wwwlogs/nginx_error.log /www/wwwlogs/isunshinenet.com.error.log /www/wwwlogs/isunshinenet.com.log { missingok notifempty daily rotate 7 size=1M create 0700 www www sharedscripts postrotate if [ -f /www/server/nginx/logs/nginx.pid ];then /www/server/nginx/sbin/nginx -s reload fi endscript }
À ce stade, nous avons terminé la gestion de la rotation des journaux nginx. Le système le détectera automatiquement chaque jour. Lorsqu'une rotation est nécessaire, une gestion de la rotation sera effectuée.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!