精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Linux自帶神器logrotate詳解

系統 Linux
本文介紹了關于logrotate這個神器的用法,如有不同理解或者UncleBen有理解錯誤的地方,還請指正。也希望這個介紹能幫到大家。

[[327253]]

周一上班,就被開發組那哥們兒拉進電話會議,說他們的服務又掛了,估計磁盤又爆掉了。登錄到web服務上,上來 df -h 一把,果然,掛的一個共享又被撐爆。 

  1. root@websrv001 ~ # df -h  
  2. Filesystem            Size  Used Avail Use% Mounted on  
  3. /dev/mapper/rootvg-rootvol  
  4.                        12G  5.6G  5.6G  50% /  
  5. tmpfs                  14G     0   14G   0% /dev/shm  
  6. /dev/sda1             477M   84M  368M  19% /boot  
  7. /dev/mapper/rootvg-homevol  
  8.                       2.0G  4.0M  1.9G   1% /local/home  
  9. /dev/mapper/rootvg-tmpvol  
  10.                       1.1G  252M  793M  25% /tmp  
  11. /dev/mapper/rootvg-varvol  
  12.                       5.8G  1.1G  4.5G  20% /var  
  13. /dev/mapper/fsvol  
  14.                       298G  298G     0 100% /net/fsvol  
  15. tmpfs                  14G     0   14G   0% /var/tmp 

上次是因為liferay的log太大,這次再看看liferay的log 

  1. root@websrv001 ~ # ll -h /data/tomcat/storage/BU001/liferay/logs/  
  2. total 199M  
  3. drwxr-xr-x 2 tomcat tomcat 4.0K Apr 20 13:14 .  
  4. drwxr-xr-x 5 tomcat tomcat 4.0K Mar 14  2016 .. 
  5.  -rw-r--r-- 1 tomcat tomcat 1.5M Apr 13 23:59 liferay.2020-04-13.log.gzipped_on_2020-04-17.gz  
  6. -rw-r--r-- 1 tomcat tomcat 2.5M Apr 14 23:59 liferay.2020-04-14.log.gzipped_on_2020-04-18.gz  
  7. -rw-r--r-- 1 tomcat tomcat 7.8M Apr 15 23:59 liferay.2020-04-15.log.gzipped_on_2020-04-19.gz  
  8. -rw-r--r-- 1 tomcat tomcat  31M Apr 17 23:58 liferay.2020-04-17.log  
  9. -rw-r--r-- 1 tomcat tomcat 7.0M Apr 18 23:59 liferay.2020-04-18.log  
  10. -rw-r--r-- 1 tomcat tomcat  90G Apr 20 17:54 liferay.2020-04-20.log 

我列個去,尼瑪,一個liferay log文件,能增長到90G,這也太扯了 吧。果斷刪掉,不知道為什么,每當我要敲rm -rf的時候,心里就莫名的緊張。。。 

  1. root@websrv001 ~ # rm -rf /data/tomcat/storage/BU001/liferay/logs/liferay.2020-04-20.log 

重啟一下服務 

  1. root@websrv001 ~ # service tomcat restart 

隨后通知了一下開發組那哥們兒,服務器磁盤已經清理,服務已經重啟,那邊也確認了web服務又活了,可以用了。隨后,又檢查了一下其它文件夾,結果發現catalina.out這個日志文件,又是超級無敵大:89G,我也是醉了。 

  1. root@websrv001 ~ # ll -h /data/tomcat/server/BU001/logs/  
  2. total 104G  
  3. drwxrwxr-x  2 root   tomcat  12K Apr 20 04:45 .  
  4. drwxr-xr-x 13 root   root   4.0K Apr 16 17:26 ..  
  5. -rw-r--r--  1 tomcat tomcat 5.1K Apr 13 10:28 catalina.2020-04-13.log.gz  
  6. -rw-r--r--  1 tomcat tomcat  13K Apr 14 20:46 catalina.2020-04-14.log.gz  
  7. -rw-r--r--  1 tomcat tomcat 7.1K Apr 16 17:51 catalina.2020-04-16.log.gz  
  8. -rw-r--r--  1 tomcat tomcat  89G Apr 20 10:39 catalina.out 
  9. -rw-r--r--  1 tomcat tomcat    0 Feb 10 23:57 catalina.out-20200210  
  10. -rw-r--r--  1 tomcat tomcat 352M Apr 13 03:38 catalina.out-20200413 

問題雖然解決了,但是這個問題本來就不應該發生啊!難道之前做運維的同事都沒有做腳本來監控和限制日志大小嘛?這可是生產系統啊!這樣可不行,既然沒人搞,我就來搞搞。于是網上搜了一把,原來Linux系統就自帶了一個日志切割神器——>logrotate

man了一下logrotate,看到了以下描述:logrotate is designed to ease administration of systems that generate large numbers of log files. It allows automatic rotation, compression, removal, and mailing of log files. Each log file may be handled daily, weekly, monthly, or when it grows too large.

Normally, logrotate is run as a daily cron job. It will not modify a log more than once in one day unless the criterion for that log is based on the log's size and logrotate is being run more than once each day, or unless the -f or --force option is used.

原來這個神器是為了方便管理系統大量日志文件而設計的,對日志文件可實現自動rotation(字面意思是旋轉,覺得理解成日志循環更好一些),壓縮,刪除和通過email發送log文件。顆粒度控制很好,可以針對每一個log文件進行每天,每周,每個月或者當log文件過大時進行rotate。

一般情況下呢,logrotate是基于每天的cron job來執行的,所以對某個log文件的rotae每天執行一次,除非rotate的執行標準是基于log文件大小,并且你logrotate這個命令每天被執行了多次,也就是你自定義了定時任務,讓logrotate每x分鐘或者每x小時執行一次,再或者你手動執行這個命令添加了-f/--force這個選項。

另外,我發現這個神器是系統自帶的,可想而知這個工具是多么的重要,否則Linux也不會默認就安裝了這個工具。

那接下來,我們來看看logrotate的相關配置以及如何執行logrotate。

logrotate的conf文件在 /etc/下: 

  1. [root@labhost ~]# ll /etc/logrotate.  
  2. logrotate.conf  logrotate.d/  
  3. [root@labhost ~]# cat /etc/logrotate.conf 

那我們來看看logrotate.conf文件里面的內容: 

  1. [root@labhost ~]# cat /etc/logrotate.conf  
  2. # see "man logrotate" for details  
  3. # rotate log files weekly:每周rotate log文件一次  
  4. weekly  
  5. # keep 4 weeks worth of backlogs:保存最近4周的log日志,因為上面是每周rotate一次  
  6. rotate 4  
  7. # create new (empty) log files after rotating old ones:rotate老日志文件之后,創建一個新的空日志文件  
  8. create  
  9. # use date as a suffix of the rotated file:rotate的文件以日期格式為后綴,比如:access_log-20200422,如果不加這個選項,rotate的格式為:access_log.1,access_log.2等等。  
  10. dateext  
  11. # uncomment this if you want your log files compressed:如果想壓縮rotate后的文件,把下面compress前面的#號去掉就可以了。  
  12. #compress  
  13. # RPM packages drop log rotation information into this directory:RPM包的日志rotation配置信息,建議放到/etc/logrotate.d這個文件夾下,實現自定義控制log文件rotate  
  14. include /etc/logrotate.d  
  15. # no packages own wtmp and btmp -- we'll rotate them here:wtmp和btmp這兩個不屬于任何package,我們就把rotate的規則寫到這里  
  16. /var/log/wtmp {   
  17.     monthly #每個月執行一次rotate  
  18.     create 0664 root utmp  #創建空文件,權限是664, 所屬用戶名 所屬用戶組  
  19.         minsize 1M   #日志文件大小超過1M才執行rotate,否則跳過  
  20.     rotate 1         #rotate時,只保留一份rotate文件  
  21.  
  22. /var/log/btmp {  
  23.     missingok  
  24.     monthly  
  25.     create 0600 root utmp  
  26.     rotate 1  
  27.  
  28. # system-specific logs may be also be configured here.#其它系統日志也可以在這里配置rotate規則 

關于rotate規則的配置,從上面的logrotate.conf文件里可以看到,有兩個地方可以配置:

  • 一種是直接在logrotate.conf里配置,不過一般適用于非RPM包的系統日志文件。
  • 另外一種是如果你要做rotate的日志文件是由第三方RPM包軟件產生的,需要在/etc/logrotate.d這個文件夾下新建一個配置文件,配置相關rotate規則。(UnleBen發現,其實如果你安裝了第三方的軟件包之后,在/etc/logrotate.d這個文件夾下就會自動創建了對應軟件的rotate配置文件。)

[[327254]]

UncleBen這里準備了一臺干凈的CentOS7,在安裝httpd這個服務之前,我們來看一下/etc/logrotate.d這個文件夾下面都有哪些配置文件 

  1. [root@labhost ~]# ll /etc/logrotate.d/  
  2. total 20  
  3. -rw-r--r--. 1 root root  91 Apr 11  2018 bootlog  
  4. -rw-r--r--. 1 root root 224 Oct 30  2018 syslog  
  5. -rw-r--r--. 1 root root 100 Oct 31  2018 wpa_supplicant  
  6. -rw-r--r--. 1 root root 103 Nov  5  2018 yum  
  7. [root@labhost ~]# 

我們現在安裝一下httpd服務: 

  1. [root@labhost ~]# yum install httpd -y  
  2. Resolving Dependencies  
  3. --> Running transaction check  
  4. ---> Package httpd.x86_64 0:2.4.6-90.el7.centos will be installed  
  5. --> Finished Dependency Resolution  
  6. ......  
  7. Install  1 Package  
  8. Total download size: 2.7 M  
  9. Installed size: 9.4 M  
  10. Downloading packages:  
  11. httpd-2.4.6-90.el7.centos.x86_64.rpm                  | 2.7 MB  00:00:04  
  12. Running transaction check  
  13. Running transaction test  
  14. Transaction test succeeded  
  15. Running transaction  
  16.   Installing : httpd-2.4.6-90.el7.centos.x86_64       1/1  
  17.   Verifying  : httpd-2.4.6-90.el7.centos.x86_64       1/1  
  18. Installed:  
  19.   httpd.x86_64 0:2.4.6-90.el7.centos  
  20. Complete!  
  21. [root@labhost ~]# 

再去/etc/logrotate.d這個文件夾下看一下: 

  1. [root@labhost ~]# ll /etc/logrotate.d/  
  2. total 24  
  3. -rw-r--r--. 1 root root  91 Apr 11  2018 bootlog  
  4. -rw-r--r--. 1 root root 194 Aug  6  2019 httpd  
  5. -rw-r--r--. 1 root root 224 Oct 30  2018 syslog  
  6. -rw-r--r--. 1 root root 100 Oct 31  2018 wpa_supplicant  
  7. -rw-r--r--. 1 root root 103 Nov  5  2018 yum  
  8. [root@labhost ~]# 

可以看到,安裝httpd之后,自動創建好了針對httpd服務的log rotate配置文件,打開看看: 

  1. [root@labhost ~]# cat /etc/logrotate.d/httpd  
  2. /var/log/httpd/*log {   
  3.     missingok   
  4.     notifempty  
  5.     sharedscripts  
  6.     delaycompress  
  7.     postrotate  
  8.         /bin/systemctl reload httpd.service > /dev/null 2>/dev/null || true  
  9.     endscript  
  10.  
  11. [root@labhost ~]# 

這就是一個標準的,針對第三方軟件的一個logrotate配置文件,簡單說明一下:

格式:

  • log文件的路徑(支持通配符*),再加上一對花括號{}
  • 花括號里面的內容就是logrotate的規則參數,需要單獨成行。

參數解讀:

missingok: 如果日志不存在,不產生錯誤信息

notifempty:如果日志文件為空,不做rotate,這個跟你ifempty互斥

sharedscripts:配合prerotate and postrotate 使用,sharedscripts 開啟的話,如果使用了對需要做rotate的log文件使用了

通配符,那么*

prerotate** and postrotate 的腳本只會執行一次。沒有sharedscripts 的話,每個需要log文件做rotate的時候都會執行一遍prerotate and postrotate 的腳本

delaycompress:延遲壓縮舊的日志文件,先rotate,不進行壓縮,等到下次rotate時,才會壓縮上次rotate的文件。這個需要跟compress一起使用,單獨使用不生效。

postrotate/endscript:rotate之后想要執行的腳本,需要放在postrotate 與 endscript中間,這兩個選項要單獨成行。

除了上面的參數外,還有以下常見參數: 

  1. daily            指定rotate周期為每天,還有weekly, monthly。  
  2. rotate count    指定rotate日志文件保留的數量,如果沒有配置這個參數,就不保留備份,設置1的話,就是保                    留1個rotate備份,10就是保留10個rotate備份。  
  3. size size        當日志文件到達指定的大小時才轉儲,默認的大小單位是bytes,可以以k,M,G。比如size 10k,                  10M, 10G。  
  4. compress        通過gzip壓縮然后備份日志。  
  5. nocompress      默認值,不做gzip壓縮處理。  
  6. delaycompress   和compress配合使用,rotate的日志文件到下一次執行logrotate時才進行壓縮處理。  
  7. copytruncate    把當前日志備份并截斷,先拷貝原日志文件再清空,由于拷貝和清空之間有一個時間差,可能會丟失部                 分日志數據。  
  8. create mode owner group        rotate之后,創建新文件的日志文件并指定新文件的屬性,比如:  
  9.                             create 644 tomcat tomcat  
  10. mail address     把rotate的日志文件發送到指定的E-mail。  
  11. dateext          使用當期日期作為命名格式,如果指定的rotate大于1,默認rotate之后的文件名是:xx.log.1,                     xx.log.2, xx.log3,如果配置dateext規則,那么rotate之后的文件名就會以日期結                     尾:xx.log.2020-04-20,xx.log.2020-04-21, xx.log.2020-04-22 
  12. dateformat -%Y%m%d%H.%s   定義文件rotate后的文件名的日期格式,必須配合dateext使用,查了一下資料,目前只支持: %Y %m %d %H %s 這幾個個參數(年,月,日,時,秒) 

rotate的規則是配置好了,但是怎么來執行呢?我們來help一下。 

  1. [root@labhost ~]# logrotate --help  
  2. Usage: logrotate [OPTION...] <configfile>  
  3.   -d, --debug               Don't do anything, just test (implies -v)  
  4.   -f, --force               Force file rotation  
  5.   -m, --mail=command        Command to send mail (instead of `/bin/mail')  
  6.   -s, --state=statefile     Path of state file  
  7.   -v, --verbose             Display messages during rotation  
  8.   -l, --log=STRING          Log file  
  9.   --version                 Display version information  
  10. Help options:  
  11.   -?, --help                Show this help message  
  12.   --usage                   Display brief usage message  
  13. [root@labhost ~]# 

這里著重說一下-d和-f兩個選項:

-d:debug模式,就是先演練一遍,不是真干。

-f:強制模式,實打實的執行。

從上面我們man logrotate的信息可以了解到:一般情況下呢,logrotate是基于每天的cron job來執行的,所以對某個log文件的rotae每天執行一次,除非rotate的執行標準是基于log文件大小,并且你logrotate這個命令每天被執行了多次,也就是你自定義了定時任務,讓logrotate每x分鐘或者每x小時執行一次,再或者你手動執行這個命令添加了-f/--force這個選項。

為什么是每天執行一次呢?我們去/etc/cron.daily/,/etc/cron.weekly/,/etc/cron.monthly/,/etc/cron.hourly/可以看到,在/etc/cron.daily/這個文件夾下有一個logrotate可執行腳本,那每天就會跑一次啦! 

  1. [root@labhost ~]# ll /etc/cron.daily/  
  2. total 8  
  3. -rwx------. 1 root root 219 Oct 31  2018 logrotate  
  4. -rwxr-xr-x. 1 root root 618 Oct 30  2018 man-db.cron  
  5. [root@labhost ~]# ll /etc/cron.weekly/  
  6. total 0  
  7. [root@labhost ~]# ll /etc/cron.monthly/  
  8. total 0  
  9. [root@labhost ~]# ll /etc/cron.hourly/  
  10. total 4  
  11. -rwxr-xr-x. 1 root root 392 Apr 11  2018 0anacron  
  12. [root@labhost ~]# 

那我們來看看logrotate腳本里寫的什么內容: 

  1. [root@labhost ~]# cat /etc/cron.daily/logrotate  
  2. #!/bin/sh  
  3. /usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf  
  4. EXITVALUE=$?  
  5. if [ $EXITVALUE != 0 ]; then  
  6.     /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"  
  7. fi  
  8. exit 0  
  9. [root@labhost ~]# 

簡單理解就是執行logrotate命令,并且指定執行logrotate時狀態文件和執行的conf文件:/etc/logrotate.conf。大家還記不記得在這個文件里,有一行:include /etc/logrotate.d,也就是說在執行logrotate.conf這個文件時,一并執行/etc/logrotate.d文件夾下的配置文件。下面幾行就是執行出錯時,logger一下。

所以,我們執行logrotate時,可以直接運行:logrotate + confi文件名 

  1. [root@labhost ~]# logrotate /etc/logrotate.d/httpd 

如果一切順利,那么logrotate命令會執行成功,httpd的日志文件會被按照你配置的規則進行rotate。但是如果沒有達到你的期望結果,你就需要來debug了。其實推薦大家在放到生產環境之前,最好好是用-d選項來測試一下你寫的配置文件是否可以達到你的預期。我們來看一下加上-d選項的運行結果: 

  1. [root@labhost ~]# logrotate -d /etc/logrotate.d/httpd  
  2. reading config file /etc/logrotate.d/httpd  
  3. Allocating hash table for state file, size 15360 B  
  4. Handling 1 logs  
  5. rotating pattern: /var/log/httpd/*log  1048576 bytes (no old logs will be kept)  
  6. empty log files are not rotated, old logs are removed  
  7. considering log /var/log/httpd/access_log  
  8.   log does not need rotating (log size is below the 'size' threshold)  
  9. considering log /var/log/httpd/error_log  
  10.   log does not need rotating (log size is below the 'size' threshold)  
  11. not running postrotate script, since no logs were rotated  
  12. [root@labhost ~]# 

現在我們把httpd這個logrotate的流程梳理一下:

  • httpd這個logrotate的配置文件會每天被執行一次,因為logrotate腳本默認放置在/etc/cron.daily/下,腳本會根據/etc/logrotate.conf配置文件來執行logrotate命令,而針對httpd服務的logrotate配置文件在/etc/logrotate.d/下,此文件夾被包含在了/etc/logrotate.conf配置文件里。
  • 如果/var/log/httpd/下沒有以log結尾的文件也不會記錄錯誤信息。
  • 如果/var/log/httpd/下的log文件是空文件,那么不會執行rotate操作。
  • 在執行logrotate之后,httpd服務會被重新加載

對于大多數情況下,每天把日志備份一下已經足夠了。但是像UncleBen周一遇到的這種case:一天之內,log日志把磁盤給撐爆了。那這種case,用logrotate該如何解決呢?

首先我們來捋一下需求:

  • 要解決log文件一天之內增長過快,撐爆磁盤的問題。所以關鍵詞就是:一天之內->時間,撐爆磁盤->文件大小

執行周期

logrotate默認是每天,我們的需求是一天之內,所以可以讓logrotate每半天(每12小時)、每8個小時、每4個小時、每2個小時,甚至是每小時執行一次,都可以。這個看各位心情。

文件大小

超過多大才執行logrotate,這個也是根據實際環境來確定。UncleBen遇到這個case,日志竟然暴漲到89G,我這里就設置成超過1G大小就進行rotate。

為了能讓各位客官老爺們看到真是的效果,我這里做了一點小小的改動,話不多說了,上demo:

httpd logrotate的配置文件更改如下:

version1:在原來基礎上增加了一行:rotate 3 

  1. [root@labhost ~]# cat /etc/logrotate.d/httpd  
  2. /var/log/httpd/*log {  
  3.     rotate 3  
  4.     missingok  
  5.     notifempty  
  6.     sharedscripts  
  7.     delaycompress  
  8.     postrotate  
  9.         /bin/systemctl reload httpd.service > /dev/null 2>/dev/null || true  
  10.     endscript  
  11.  
  12. [root@labhost ~]# 

然后我來創建一個cron job,每分鐘執行一次: 

  1. */1 * * * * /usr/sbin/logrotate /etc/logrotate.d/httpd 

然后創建一個監控httpd文件夾下log文件的腳本: 

  1. [root@labhost ~]# cat monitorlog.sh  
  2. #!/bin/bash  
  3. while :  
  4. do  
  5.     sleep 2  
  6.     ls -hl /var/log/httpd/  
  7. done 

我們來執行一下monitorlog.sh,來觀察一下httpd的日志文件。注意:我這里是訪問了Apache默認的站點,然后手動刷新Apache站點,來產生點access log,然后停止刷新頁面。 

  1. [root@labhost ~]# ./monitorlog.sh  
  2. total 140K  
  3. -rw-r--r--. 1 root root 79K Apr 24 14:09 access_log  
  4. -rw-r--r--. 1 root root 12K Apr 24 14:09 error_log  
  5. total 140K  
  6. -rw-r--r--. 1 root root 79K Apr 24 14:09 access_log  
  7. -rw-r--r--. 1 root root 12K Apr 24 14:09 error_log  
  8. total 96K  
  9. -rw-r--r--. 1 root root   0 Apr 24 14:10 access_log  
  10. -rw-r--r--. 1 root root 79K Apr 24 14:09 access_log.1  
  11. -rw-r--r--. 1 root root 370 Apr 24 14:10 error_log  
  12. -rw-r--r--. 1 root root 12K Apr 24 14:10 error_log.1  
  13. total 96K  
  14. -rw-r--r--. 1 root root   0 Apr 24 14:10 access_log  
  15. -rw-r--r--. 1 root root 79K Apr 24 14:09 access_log.1  
  16. -rw-r--r--. 1 root root 370 Apr 24 14:10 error_log  
  17. -rw-r--r--. 1 root root 12K Apr 24 14:10 error_log.1  
  18. ... 

我們可以看到:

  • 由于我設定的是每分鐘執行一次logrotate,并且指定了httpd這個logrotate配置文件,所以我們配置的規則會每分鐘被執行一次。
  • /var/log/httpd/這個文件夾下:
    • 只有access_log和error_log這兩個文件。
    • Apr 24 14:09時,access_log文件大小是79K, error_log文件大小是12K。
  • 停止刷新頁面,等待一分鐘之后
  • /var/log/httpd/這個文件夾下:
    • 增加了兩個文件:access_log.1和error_log.1
    • Apr 24 14:10時,access_log文件被清空,大小為0;而error_log不是空的,證明一直有error信息產生。
  • 為了驗證notifempty這個參數是否生效,我們不刷新頁面,再多等兩分鐘,然后從monitorlog.sh執行的結果來看:
  • access_log沒有被rotate,因為在第一次access log文件被rotate之后,沒有訪問日志產生,它的大小為0,我們在配置文件里加了notifempty這個參數,意思就是如果為空,不做rotate。

Apr 24 14:13 /var/log/httpd/文件夾下信息: 

  1. total 96K  
  2. -rw-r--r--. 1 root root   0 Apr 24 14:10 access_log  
  3. -rw-r--r--. 1 root root 79K Apr 24 14:09 access_log.1  
  4. -rw-r--r--. 1 root root 370 Apr 24 14:13 error_log  
  5. -rw-r--r--. 1 root root 663 Apr 24 14:13 error_log.1  
  6. -rw-r--r--. 1 root root 663 Apr 24 14:12 error_log.2  
  7. -rw-r--r--. 1 root root 663 Apr 24 14:11 error_log.3 

rotate 3這個參數:

  • 始終保留3份rotate的文件,那我們多等幾分鐘,再看看/var/log/httpd/這個文件夾下有哪些文件,即可驗證。
  • rotate后的文件名:是以.數字結尾。

Apr 24 14:14 /var/log/httpd/文件夾下信息: 

  1. total 96K  
  2. -rw-r--r--. 1 root root   0 Apr 24 14:10 access_log  
  3. -rw-r--r--. 1 root root 79K Apr 24 14:09 access_log.1  
  4. -rw-r--r--. 1 root root 370 Apr 24 14:14 error_log  
  5. -rw-r--r--. 1 root root 663 Apr 24 14:14 error_log.1  
  6. -rw-r--r--. 1 root root 663 Apr 24 14:13 error_log.2  
  7. -rw-r--r--. 1 root root 663 Apr 24 14:12 error_log.3 

Apr 24 14:15 /var/log/httpd/文件夾下信息: 

  1. total 96K  
  2. -rw-r--r--. 1 root root   0 Apr 24 14:10 access_log  
  3. -rw-r--r--. 1 root root 79K Apr 24 14:09 access_log.1  
  4. -rw-r--r--. 1 root root 370 Apr 24 14:15 error_log  
  5. -rw-r--r--. 1 root root 663 Apr 24 14:15 error_log.1  
  6. -rw-r--r--. 1 root root 663 Apr 24 14:14 error_log.2  
  7. -rw-r--r--. 1 root root 663 Apr 24 14:13 error_log.3 

delaycompress這個參數:

  • 是必須要和compress一起使用的,單獨使用無效,可以看到沒有任何log文件被壓縮處理,rotate前和rotate后的文件大小保持一致。

postrotate/endscript這個參數里的腳本:/bin/systemctl reload httpd.service > /dev/null 2>/dev/null || true endscript

就是在log日志被rotate之后,需要重新reload httpd service,如果沒有這個腳本會怎么樣呢?我們來到/etc/logrotate.d/httpd里,把這3行注釋掉。再到monitorlog.sh執行的結果來看看: 

  1. total 92K  
  2. -rw-r--r--. 1 root root   0 Apr 24 14:10 access_log  
  3. -rw-r--r--. 1 root root 79K Apr 24 14:09 access_log.1  
  4. -rw-r--r--. 1 root root 370 Apr 24 14:47 error_log.1  
  5. -rw-r--r--. 1 root root 663 Apr 24 14:47 error_log.2  
  6. -rw-r--r--. 1 root root 663 Apr 24 14:46 error_log.3 

注釋掉postrotate/endscript腳本后,我們發現:

  • error_log文件在執行rotate之后,新的error_log并沒有被創建出來。
  • 我們來刷新一下頁面,嘗試產生新的access log,發現可以正常寫入,大小有變化。 
  1. total 136K  
  2. -rw-r--r--. 1 root root  38K Apr 24 14:52 access_log  
  3. -rw-r--r--. 1 root root  79K Apr 24 14:09 access_log.1  
  4. -rw-r--r--. 1 root root 5.4K Apr 24 14:52 error_log.1  
  5. -rw-r--r--. 1 root root  663 Apr 24 14:47 error_log.2  
  6. -rw-r--r--. 1 root root  663 Apr 24 14:46 error_log.3 
  • 但是我們等待文件被rotate之后,再來觀察一下,我們發現,access_log在被rotate之后,新的access_log文件同樣沒有被創建出來。 
  1. total 136K  
  2. -rw-r--r--. 1 root root  38K Apr 24 14:52 access_log.1  
  3. -rw-r--r--. 1 root root  79K Apr 24 14:09 access_log.2  
  4. -rw-r--r--. 1 root root 5.4K Apr 24 14:52 error_log.1  
  5. -rw-r--r--. 1 root root  663 Apr 24 14:47 error_log.2  
  6. -rw-r--r--. 1 root root  663 Apr 24 14:46 error_log.3 
  • 如果我們繼續嘗試刷新頁面,發現access_log.1和error_log.1日志大小都會增長。這個就可以說明postrotate/endscript中間腳本的作用了,如果沒有這個腳本,也就是在執行logrotate之后,沒有reload httpd service,那么httpd服務會繼續往舊的log日志中寫信息,那么針對/var/log/httpd/*log后續的logrotate命令都不會被執行。為什么?
  • 配置文件里的文件路徑寫了:/var/log/httpd/*log,你是針對以log結尾的文件名。
  • 現在被rotate之后的文件名全都是以 . 數字結尾的。 
  1. total 148K  
  2. -rw-r--r--. 1 root root  49K Apr 24 15:30 access_log.1  
  3. -rw-r--r--. 1 root root  79K Apr 24 14:09 access_log.2  
  4. -rw-r--r--. 1 root root 6.9K Apr 24 15:30 error_log.1  
  5. -rw-r--r--. 1 root root  663 Apr 24 14:47 error_log.2  
  6. -rw-r--r--. 1 root root  663 Apr 24 14:46 error_log.3 

記不記得我們還有一個參數叫copytruncate,我們來試試,在沒有postrotate/endscript腳本時,加上這個參數是什么效果。

version2:刪除postrotate/endscript腳本,增加copytruncate 

  1. [root@labhost ~]# cat /etc/logrotate.d/httpd  
  2. /var/log/httpd/*log {  
  3.     rotate 3  
  4.     missingok  
  5.     notifempty  
  6.     sharedscripts  
  7.     delaycompress  
  8.     copytruncate  

我們先stop httpd service,然后刪除所有的access_log和error_log, 最后start httpd service,可以看到,httpd的日志文件正常產生了。 

  1. [root@labhost ~]# systemctl stop httpd  
  2. [root@labhost ~]# rm -rf /var/log/httpd/*  
  3. [root@labhost ~]# ll /var/log/httpd/  
  4. total 0  
  5. [root@labhost ~]#  
  6. [root@labhost ~]# systemctl start httpd  
  7. [root@labhost ~]# ll /var/log/httpd/  
  8. total 4  
  9. -rw-r--r--. 1 root root   0 Apr 24 15:47 access_log  
  10. -rw-r--r--. 1 root root 812 Apr 24 15:47 error_log  
  11. [root@labhost ~]# 

接下來我們再刷新一下頁面,產生一些access log和error log,等待幾分鐘,執行mornitorlog.sh來看一下:

  • access_log和error_log都可以正常rotate。
  • 新的access_log和error_log文件都可以被創建出來,并且可以正常寫入log日志。 
  1. total 60K  
  2. -rw-r--r--. 1 root root  17K Apr 24 15:51 access_log  
  3. -rw-r--r--. 1 root root  27K Apr 24 15:51 access_log.1  
  4. -rw-r--r--. 1 root root 2.3K Apr 24 15:51 error_log  
  5. -rw-r--r--. 1 root root 3.6K Apr 24 15:51 error_log.1  
  6. -rw-r--r--. 1 root root  812 Apr 24 15:48 error_log.2 

所以,比起放在postrotate/endscript中間的reload httpd service腳本,我更喜歡用copytruncate這個參數。

version3:在version2的基礎上,增加dateext參數 

  1. [root@labhost ~]# cat /etc/logrotate.d/httpd  
  2. /var/log/httpd/*log {  
  3.     rotate 3  
  4.     missingok  
  5.     notifempty  
  6.     sharedscripts  
  7.     delaycompress  
  8.     copytruncate  
  9.     dateext  

我們嘗試訪問頁面,刷新,產生一些access log和error log。等待幾分鐘,我們執行monitorlog.sh來看一下,可以發現:

  • 最近一次被rotate log文件時以日期格式結尾的。
  • 我們的cron job規定每分鐘執行一次logrotate,但是在添加dateext參數之后失效了。所以:
    • 如果你想要logrotate每天執行多次(大于一次),就不要添加dateext參數。
    • 如果你既想要logrotate每天執行多次(大于一次),還想rotate之后的文件以日期格式結尾,有一種方法就是添加dateformat .%s參數。 
  1. total 144K  
  2. -rw-r--r--. 1 root root  30K Apr 24 16:55 access_log  
  3. -rw-r--r--. 1 root root 9.3K Apr 24 15:56 access_log.1  
  4. -rw-r--r--. 1 root root  17K Apr 24 15:52 access_log.2  
  5. -rw-r--r--. 1 root root  26K Apr 24 16:07 access_log-20200424  
  6. -rw-r--r--. 1 root root  27K Apr 24 15:51 access_log.3  
  7. -rw-r--r--. 1 root root 4.1K Apr 24 16:55 error_log  
  8. -rw-r--r--. 1 root root 1.3K Apr 24 15:56 error_log.1  
  9. -rw-r--r--. 1 root root 2.3K Apr 24 15:52 error_log.2  
  10. -rw-r--r--. 1 root root 3.6K Apr 24 16:07 error_log-20200424  
  11. -rw-r--r--. 1 root root 3.6K Apr 24 15:51 error_log.3 

version4:在version3的基礎上,增加dateformat -%Y%m%d%H.%s參數 

  1. [root@labhost ~]# cat /etc/logrotate.d/httpd  
  2. /var/log/httpd/*log {  
  3.     rotate 3  
  4.     missingok  
  5.     notifempty  
  6.     sharedscripts  
  7.     delaycompress  
  8.     copytruncate  
  9.     dateext  
  10.     dateformat -%Y%m%d%H.%s  

我們再次嘗試訪問頁面,刷新,產生一些access log和error log。等待幾分鐘,我們執行monitorlog.sh來看一下,可以發現:

  • 我們的cron job現在執行正常了,當log文件非空并且有更新時,可以被執行多次。
  • 被rotate之后的文件是以日期格式結尾的:
    • -橫杠開頭,接著時年月日時,然后句點. 最后是秒,但是最后的.s%是從1970年1月1日00:00:00到目前經歷的秒數。 
  1. total 172K  
  2. -rw-r--r--. 1 root root 7.5K Apr 24 17:41 access_log  
  3. -rw-r--r--. 1 root root  26K Apr 24 16:07 access_log-20200424  
  4. -rw-r--r--. 1 root root  25K Apr 24 17:32 access_log-2020042417.1587720721  
  5. -rw-r--r--. 1 root root  14K Apr 24 17:39 access_log-2020042417.1587721141  
  6. -rw-r--r--. 1 root root 3.8K Apr 24 17:40 access_log-2020042417.1587721201  
  7. -rw-r--r--. 1 root root 1.1K Apr 24 17:41 error_log  
  8. -rw-r--r--. 1 root root 3.6K Apr 24 16:07 error_log-20200424 
  9. -rw-r--r--. 1 root root 3.3K Apr 24 17:32 error_log-2020042417.1587720721  
  10. -rw-r--r--. 1 root root 1.8K Apr 24 17:39 error_log-2020042417.1587721141  
  11. -rw-r--r--. 1 root root  514 Apr 24 17:40 error_log-2020042417.1587721201 

給大家留個問題:如果dateformat定義的格式是:-%Y%m%d%H,那么在日志文件非空并且持續更新的情況下,access_log和error_log會多久被rotate一次?

version5:在version4的基礎上,增加size 50K參數 

  1. [root@labhost ~]# cat /etc/logrotate.d/httpd  
  2. /var/log/httpd/*log {  
  3.     size 50K  
  4.     rotate 3  
  5.     missingok  
  6.     notifempty  
  7.     sharedscripts  
  8.     delaycompress  
  9.     copytruncate  
  10.     dateext  
  11.     dateformat -%Y%m%d%H.%s  

這一次,我們先執行monitorlog.sh來看一下access_log和error_log的大小,再嘗試訪問頁面,刷新,產生一些access log和error log,注意一下,因為我配置的size大小是50K,所以讓access_log文件大小<50K,然后等待幾分鐘,觀察monitorlog.sh輸出,可以發現:

  • access_log和error_log文件都沒有被rotate,因為他們的大小都沒有超過50K,從下面的結果可以看出:
  • access_log大小是49K
  • error_log大小是6.6K 
  1. total 132K  
  2. -rw-r--r--. 1 root root  49K Apr 24 18:04 access_log  
  3. -rw-r--r--. 1 root root  26K Apr 24 16:07 access_log-20200424  
  4. -rw-r--r--. 1 root root 1.9K Apr 24 17:56 access_log-2020042417.1587722161  
  5. -rw-r--r--. 1 root root 3.8K Apr 24 17:58 access_log-2020042417.1587722281  
  6. -rw-r--r--. 1 root root 7.5K Apr 24 17:59 access_log-2020042417.1587722341  
  7. -rw-r--r--. 1 root root 6.6K Apr 24 18:04 error_log  
  8. -rw-r--r--. 1 root root 3.6K Apr 24 16:07 error_log-20200424  
  9. -rw-r--r--. 1 root root  257 Apr 24 17:56 error_log-2020042417.1587722161  
  10. -rw-r--r--. 1 root root  514 Apr 24 17:58 error_log-2020042417.1587722281  
  11. -rw-r--r--. 1 root root 1.1K Apr 24 17:59 error_log-2020042417.1587722341 
  • 現在我們繼續刷新頁面,讓access_log大小>50K,觀察monitorlog.sh輸出,可以發現:
  • Apr 24 18:12時
    • logrotate被執行了一次,由于access_log文件大小>50K,所以就被rotate了。并保存為:access_log-2020042418.1587723121
    • 由于error_log文件大小<50K,所以此次logrotate忽略了這個文件。 
  1. total 132K  
  2. -rw-r--r--. 1 root root  52K Apr 24 18:11 access_log  
  3. -rw-r--r--. 1 root root  26K Apr 24 16:07 access_log-20200424  
  4. -rw-r--r--. 1 root root 1.9K Apr 24 17:56 access_log-2020042417.1587722161  
  5. -rw-r--r--. 1 root root 3.8K Apr 24 17:58 access_log-2020042417.1587722281  
  6. -rw-r--r--. 1 root root 7.5K Apr 24 17:59 access_log-2020042417.1587722341  
  7. -rw-r--r--. 1 root root 7.1K Apr 24 18:11 error_log 
  8. -rw-r--r--. 1 root root 3.6K Apr 24 16:07 error_log-20200424  
  9. -rw-r--r--. 1 root root  257 Apr 24 17:56 error_log-2020042417.1587722161  
  10. -rw-r--r--. 1 root root  514 Apr 24 17:58 error_log-2020042417.1587722281  
  11. -rw-r--r--. 1 root root 1.1K Apr 24 17:59 error_log-2020042417.1587722341  
  12. total 128K  
  13. -rw-r--r--. 1 root root    0 Apr 24 18:12 access_log  
  14. -rw-r--r--. 1 root root  26K Apr 24 16:07 access_log-20200424  
  15. -rw-r--r--. 1 root root 3.8K Apr 24 17:58 access_log-2020042417.1587722281  
  16. -rw-r--r--. 1 root root 7.5K Apr 24 17:59 access_log-2020042417.1587722341  
  17. -rw-r--r--. 1 root root  52K Apr 24 18:12 access_log-2020042418.1587723121  
  18. -rw-r--r--. 1 root root 7.1K Apr 24 18:11 error_log  
  19. -rw-r--r--. 1 root root 3.6K Apr 24 16:07 error_log-20200424  
  20. -rw-r--r--. 1 root root  257 Apr 24 17:56 error_log-2020042417.1587722161  
  21. -rw-r--r--. 1 root root  514 Apr 24 17:58 error_log-2020042417.1587722281  
  22. -rw-r--r--. 1 root root 1.1K Apr 24 17:59 error_log-2020042417.1587722341 

version6:在version5的基礎上,增加compress參數 

  1. [root@labhost ~]# cat /etc/logrotate.d/httpd  
  2. /var/log/httpd/*log {  
  3.     compress  
  4.     size 50K  
  5.     rotate 3  
  6.     missingok  
  7.     notifempty  
  8.     sharedscripts  
  9.     delaycompress  
  10.     copytruncate  
  11.     dateext  
  12.     dateformat -%Y%m%d%H.%s  

我們繼續刷新頁面,讓access_log大小>50K,觀察monitorlog.sh輸出,可以發現:

  • Apr 24 17:59時
    • logrotate被執行了一次,由于access_log文件大小>50K,所以就被rotate了,并且被做了壓縮處理,保存為:access_log-2020042417.1587722341.gz
    • 被壓縮之前大小是7.5K,被壓縮后是398,不到1k,所以強烈推薦添加這個參數,節省空間?。。?!
    • 由于error_log文件大小<50K,所以此次logrotate忽略了這個文件。 
  1. total 168K  
  2. -rw-r--r--. 1 root root    0 Apr 24 18:20 access_log  
  3. -rw-r--r--. 1 root root  26K Apr 24 16:07 access_log-20200424  
  4. -rw-r--r--. 1 root root  398 Apr 24 17:59 access_log-2020042417.1587722341.gz  
  5. -rw-r--r--. 1 root root 1.3K Apr 24 18:12 access_log-2020042418.1587723121.gz  
  6. -rw-r--r--. 1 root root  84K Apr 24 18:20 access_log-2020042418.1587723601  
  7. -rw-r--r--. 1 root root  19K Apr 24 18:19 error_log  
  8. -rw-r--r--. 1 root root 3.6K Apr 24 16:07 error_log-20200424  
  9. -rw-r--r--. 1 root root  257 Apr 24 17:56 error_log-2020042417.1587722161  
  10. -rw-r--r--. 1 root root  514 Apr 24 17:58 error_log-2020042417.1587722281  
  11. -rw-r--r--. 1 root root 1.1K Apr 24 17:59 error_log-2020042417.1587722341 

好了,以上就是關于logrotate這個神器的用法介紹,如有不同理解或者UncleBen有理解錯誤的地方,還請指正。也希望這個介紹能幫到大家。 

 

責任編輯:龐桂玉 來源: 馬哥Linux運維
相關推薦

2021-08-16 11:59:32

Linuxlogrotate日志文件

2011-01-11 11:32:20

Linuxlogrotate配置

2025-04-29 08:25:00

logrotateLinux日志輪轉

2009-12-08 12:10:30

2025-04-24 10:34:45

2021-12-24 10:15:22

Linux命令lsof

2021-07-30 05:51:53

移動應用PerfDog工具

2021-06-02 11:41:54

LinuxTmux命令

2023-11-10 09:16:45

SpringBootThymeleaf

2014-04-11 11:13:15

CollectlLinux系統監控

2015-07-28 10:31:48

2022-02-11 07:45:10

Linuxsmem系統

2013-04-10 10:59:45

Linux系統監控collectl

2020-10-21 10:50:24

LVSNginxHAProxy

2011-04-21 17:29:13

Linuxgssftp

2021-10-22 14:23:02

logrotateLinux 命令Linux

2021-11-24 22:41:00

微軟工具Windows 10

2019-08-27 15:12:12

Linux操作系統Windows

2025-04-02 00:33:00

2025-04-01 02:00:22

點贊
收藏

51CTO技術棧公眾號

亚洲精品一二三四五区| 91丨九色丨国产| 欧美狂猛xxxxx乱大交3| 日本中文字幕一区二区| 国产精品久久国产精麻豆99网站| 成人网欧美在线视频| 国产在线观看免费视频今夜| 亚洲盗摄视频| 91精品国产色综合久久久蜜香臀| 加勒比成人在线| 国产一级在线| 国产一区不卡在线| 欧美自拍视频在线观看| 国产高清在线免费观看| 亚洲另类春色校园小说| 91精品福利在线一区二区三区| 国产毛片视频网站| 国产日产一区二区| 久久综合九色综合久久久精品综合 | 成人av一区二区三区在线观看| 亚洲一级在线| 久热在线中文字幕色999舞| 国产精品久久无码| 亚洲一区二区av| 欧美午夜片在线免费观看| 日本福利视频导航| 美州a亚洲一视本频v色道| 国产精品一二二区| 国产精品伦子伦免费视频| 日本三级视频在线| 亚洲精品小说| 中文字幕欧美国内| 法国伦理少妇愉情| 东京久久高清| 日韩一区二区三区在线| 黄色片视频在线| 高潮一区二区| 欧美日韩国产色| 欧美国产日韩激情| 亚洲性图自拍| 亚洲欧美日韩国产中文在线| 亚洲高清视频在线观看| 四虎精品在线| 成人国产免费视频| 99在线视频播放| 国产伦精品一区二区三区视频痴汉| 久久久精品午夜少妇| 97在线日本国产| 一级片免费网址| 亚洲激情成人| 69视频在线播放| 免费看日韩毛片| 在线亚洲成人| 88国产精品欧美一区二区三区| 国产乡下妇女做爰| 亚洲黄页一区| 欧美一级片免费在线| 国产成人永久免费视频| 欧美成人aaa片一区国产精品| 欧美日韩在线二区| 国产亚洲一级高清| 我不卡一区二区| 欧美一二区在线观看| 亚洲性xxxx| 国产午夜精品福利视频| 日韩大片在线观看| 久久精品国产69国产精品亚洲| 日本不卡一二区| 一区二区三区四区在线观看国产日韩| 精品国产一区二区三区久久狼黑人| 久久免费手机视频| 91久久国产| 欧美二区在线播放| 日韩黄色a级片| 性伦欧美刺激片在线观看| 欧美在线一区二区三区四| 国产性生活视频| 蜜桃久久久久久久| 亚洲淫片在线视频| 色欲av永久无码精品无码蜜桃| av一区二区三区在线| 欧美乱偷一区二区三区在线| 玖玖综合伊人| 亚洲欧洲日韩av| 成人午夜免费在线视频| 色在线视频观看| 欧美亚洲禁片免费| 国产九九九视频| 久久久伦理片| 自拍视频国产精品| 久久精品视频国产| 视频一区欧美精品| 国产美女高潮久久白浆| 亚洲第九十九页| 久久久综合视频| 色乱码一区二区三区熟女| 国产一线二线在线观看| 色八戒一区二区三区| 国产乱女淫av麻豆国产| 亚洲精品观看| 伊人伊成久久人综合网小说| 成人免费精品动漫网站| 亚洲在线成人| 91在线视频免费| 欧美视频免费一区二区三区| 亚洲日本电影在线| 国产肥臀一区二区福利视频| 日本国产一区| 国产丝袜一区二区| 国产高清在线免费观看| 日韩影院在线观看| 国产精品视频免费一区| a√资源在线| 污片在线观看一区二区| 亚洲第一天堂久久| 免费欧美激情| 国内久久久精品| 国产欧美日韩成人| 欧美极品另类videosde| 91成人在线观看喷潮教学| 国产成年精品| 中文字幕欧美精品在线| 国产一级免费视频| 成人免费黄色大片| 日本三日本三级少妇三级66| 三上悠亚亚洲一区| 亚洲加勒比久久88色综合| 欧美色图亚洲视频| 麻豆久久一区二区| 欧美日韩一区二区视频在线观看| 黄色的视频在线观看| 欧美色网站导航| 国产成人福利在线| 性欧美暴力猛交另类hd| 国产亚洲二区| 欧美videosex性欧美黑吊| 在线成人免费观看| 国产午夜精品福利视频| 日韩激情一二三区| 蜜桃视频成人| 综合日韩av| 日韩高清av一区二区三区| 精品深夜av无码一区二区老年| 韩国精品在线观看| 91免费网站视频| 亚洲精品乱码日韩| 丝袜一区二区三区| 伊人精品一区二区三区| 国产欧美日韩不卡免费| 久久久久免费精品| 日韩欧美国产大片| 欧美在线视频网站| 欧美孕妇孕交xxⅹ孕妇交| 黑人巨大精品欧美一区免费视频| 特级西西人体4444xxxx| 99精品国产在热久久婷婷| 国产精品午夜av在线| www欧美xxxx| 亚洲韩国青草视频| 欧美在线观看不卡| 久久久亚洲精品一区二区三区 | 一本色道久久综合| 国产欧美欧洲| 依依综合在线| 国产亚洲激情在线| 91福利在线观看视频| 亚洲私人影院在线观看| 欧美日韩一区二区区| 亚洲福利国产| 欧美在线日韩精品| 欧洲成人一区| 久久久精品免费视频| 成人免费视频国产免费麻豆| 偷窥国产亚洲免费视频| 亚洲熟妇无码av| 欧美aⅴ一区二区三区视频| 中文字幕欧美日韩一区二区三区 | 日本女人一区二区三区| 伊人久久大香线蕉午夜av| 欧美国产中文高清| 97超级碰碰人国产在线观看| 黄色在线播放| 555www色欧美视频| 国产无精乱码一区二区三区| 久久亚洲影视婷婷| 日日躁夜夜躁aaaabbbb| 欧美精品91| 欧洲成人一区二区| 国产电影一区| 欧美自拍视频在线观看| 日本不卡不卡| 日韩高清中文字幕| 91资源在线视频| 性做久久久久久久免费看| 免费在线观看a视频| 国产精品亚洲专一区二区三区| 凹凸国产熟女精品视频| 国产精品7m凸凹视频分类| 国产乱码精品一区二区三区中文| 视频二区不卡| 欧美国产日韩一区二区在线观看| 男人天堂综合| 日韩视频一区二区三区在线播放| 久久精品视频5| 一区二区三区国产豹纹内裤在线| 国产人妻一区二区| 国产成人免费视频| 色乱码一区二区三区在线| 韩日成人在线| 亚洲日本无吗高清不卡| 欧美一级色片| 91免费看网站| 四虎精品在线观看| 青青久久av北条麻妃黑人| 调教一区二区| 波霸ol色综合久久| 欧美3p视频在线观看| 精品久久久久久久久久久久久久久久久 | 秋霞电影网一区二区| 男的插女的下面视频| 久久久久久久久99精品大| 欧美日韩综合久久| 国产精品极品在线观看| 国产日韩在线播放| 欧美成人精品一区二区男人小说| 欧美激情综合色综合啪啪五月| 日本暖暖在线视频| 一本一道久久a久久精品逆3p| 日本黄色不卡视频| 日韩一区二区不卡| 97视频免费在线| 欧美日韩一区二区三区高清| jizz国产在线观看| 天天射综合影视| 精品一区免费观看| 亚洲午夜一二三区视频| 久热这里有精品| 综合亚洲深深色噜噜狠狠网站| 91精品久久久久久久久久久久| 91麻豆.com| 极品粉嫩小仙女高潮喷水久久| 成人小视频在线| 亚洲自拍偷拍精品| 丁香婷婷综合激情五月色| 制服下的诱惑暮生| 国产一区激情在线| 国产农村妇女精品久久| 狠狠狠色丁香婷婷综合激情| 亚洲欧美日本一区二区| 精品亚洲成a人在线观看| av在线网址导航| 国内一区二区视频| 在线a免费观看| 国产黄色91视频| 日韩精品――色哟哟| 国产99久久久国产精品潘金网站| 女人扒开腿免费视频app| 国产大陆精品国产| 永久免费未满蜜桃| 91视频你懂的| 亚洲精品一区二区三区影院忠贞| 中文字幕国产一区| 99热在线观看精品| 亚洲激情在线激情| 四虎永久在线精品| 欧美午夜激情在线| 中文字幕+乱码+中文乱码www| 欧美男男青年gay1069videost| 国产精品主播一区二区| 日韩女优视频免费观看| 亚洲精品久久久蜜桃动漫 | 精品动漫3d一区二区三区免费| 精品少妇人欧美激情在线观看| 亚洲视频二区| 亚洲爆乳无码专区| 久久成人免费网站| 成年人性生活视频| 91香蕉国产在线观看软件| 国产一级久久久久毛片精品| 亚洲欧洲精品一区二区三区不卡| 麻豆成人在线视频| 欧美色videos| 国产精品美女一区| 亚洲成人网久久久| 国产精品毛片一区二区三区四区| 久久亚洲精品国产亚洲老地址| av色在线观看| 欧美一区二区视频97| 日韩专区视频| 久久av一区二区| 欧州一区二区| 97视频在线免费| 美女视频网站久久| 国产精品成人免费一区久久羞羞| 不卡一区二区三区四区| 国产精品久久久久久成人| 一区二区久久久久| 国产精华7777777| 日韩欧美一区二区三区在线| 少妇性bbb搡bbb爽爽爽欧美| 久久亚洲春色中文字幕| 伊伊综合在线| 岛国视频一区| 色天天综合网| 欧美日韩一区二区在线免费观看| 国产麻豆成人精品| 成人黄色a级片| 天天综合色天天综合色h| 一区二区美女视频| 亚洲人a成www在线影院| 欧美巨大xxxx做受沙滩| 国产精品视频资源| 奇米影视777在线欧美电影观看| 中文字幕中文字幕99| 性伦欧美刺激片在线观看| 美女露出粉嫩尿囗让男人桶| 国产精品久久久久一区二区三区| 欧美特黄aaaaaa| 精品久久久久香蕉网| h片在线免费| 国产精品网址在线| 免费成人av| 久色视频在线播放| 懂色av噜噜一区二区三区av| 亚洲精品久久久久久国| 91国偷自产一区二区三区成为亚洲经典 | 久久一区二区三| 欧美美女一区二区| 成人影视在线播放| 日本久久久久久久| 日本中文字幕在线一区| 亚洲人成无码网站久久99热国产| 国内精品不卡在线| 永久免费看片视频教学| 欧美中文字幕一区二区三区| 九色网友自拍视频手机在线| 55夜色66夜色国产精品视频| 加勒比色老久久爱综合网| www成人免费| 国产麻豆精品一区二区| 少妇影院在线观看| 日韩欧美中文字幕公布| 在线中文字幕-区二区三区四区| 国产欧美日韩专区发布| 色男人天堂综合再现| 在线观看日本一区二区| 中文字幕在线视频一区| 国产一区二区三区三州| 日韩中文字幕网址| **国产精品| 永久免费在线看片视频| 国产精品一区二区x88av| 高h视频免费观看| 欧美成人福利视频| 2018av在线| 精品国产乱码一区二区三区四区 | 精品亚洲视频在线| 中文字幕中文字幕一区| 一区二区久久精品66国产精品 | 久久99久久99精品免视看婷婷| 久久午夜精品视频| 在线不卡的av| 青青青草视频在线| 国产亚洲第一区| 日韩中文字幕亚洲一区二区va在线 | 97精品人妻一区二区三区香蕉| 久久亚洲精品网站| av一级亚洲| 97视频在线免费播放| 欧美国产1区2区| 国产欧美一级片| 韩国v欧美v日本v亚洲| 香蕉久久夜色精品国产更新时间 | 日韩精品亚洲专区在线观看| 国产成a人亚洲精v品在线观看| 成人avav影音| wwwwww在线观看| 欧美www在线| 亚洲精品亚洲人成在线| 美女黄色片视频| 一区二区三区在线影院| 五月婷中文字幕| 国产日韩欧美在线播放| 国自产拍偷拍福利精品免费一 | 久久久久午夜电影| 天天躁日日躁狠狠躁av| 91国偷自产一区二区三区成为亚洲经典| 午夜毛片在线| 九九九九精品| 青青青爽久久午夜综合久久午夜| 欧美一级片在线视频| 日韩av在线网站| 二区三区精品| 久久九九国产视频| 亚洲人成影院在线观看| 欧美拍拍视频| 99精品欧美一区二区三区| 久久蜜桃精品| 黑人巨大精品一区二区在线| 亚洲欧美日韩一区二区三区在线|