cari

Rumah  >  Soal Jawab  >  teks badan

Bagaimana untuk melakukan pemotongan log dalam nginx

Log Nginx ditulis dalam fail Saya memerlukan Log Nginx setiap hari
Saya melihat banyak kaedah di Internet, semuanya adalah untuk menulis skrip dan memotong fail Log dalam format tetap
Tidak bolehkah Nginx melakukan pemotongan balak dengan sendirinya?

高洛峰高洛峰2781 hari yang lalu617

membalas semua(5)saya akan balas

  • phpcn_u1582

    phpcn_u15822017-05-16 17:31:36

    Sahkan cron sedang berjalan

    service crond status

    Ubah suai fail konfigurasi

    vi /etc/crontab

    Sahkan tugasan yang dijadualkan

    vi /etc/cron.daily/logrotate

    Tulis fail konfigurasi logrotate vi /etc/logrotate.d/nginx

    /var/log/nginx/*.log {
            #指定转储周期为每天
            daily
            missingok
            #指定日志文件删除之前转储的次数,0 指没有备份,5 指保留5 个备份
            rotate 5
            #compress
            #delaycompress
            #如果是空文件的话,不转储
            notifempty
            #create 640 root adm
            sharedscripts
            postrotate
                    [ ! -f /var/run/nginx.pid ] || kill -USR1 `cat /var/run/nginx.pid`
            endscript
    }

    Konfigurasi ujian

    /usr/sbin/logrotate -f /etc/logrotate.d/nginx

    balas
    0
  • 怪我咯

    怪我咯2017-05-16 17:31:36

    Keperluan pengelogan pentadbir sistem sentiasa berubah demi kepentingannya yang ringan, Nginx benar-benar tidak bimbang tentang pengurusan log.

    Halaman Wiki Rotasi Log Rasmi

    Saya rasa anda juga telah menemuinya, anda boleh menggunakan skrip anda sendiri atau logrotate.

    balas
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-16 17:31:36

    fail log nginx tidak mempunyai fungsi putar. Jika anda tidak mengendalikannya, fail log akan menjadi lebih besar dan lebih besar Nasib baik, kami boleh menulis skrip pemotongan log nginx untuk memotong fail log secara automatik.

    Langkah pertama ialah menamakan semula fail log Jangan risau tentang nginx tidak dapat mencari fail log dan kehilangan log selepas menamakan semula. Sebelum anda membuka semula fail log dengan nama asal, nginx masih akan menulis log pada fail yang anda namakan semula Linux bergantung pada deskriptor fail dan bukannya nama fail untuk mencari fail.

    Langkah kedua ialah menghantar isyarat USR1 ke proses utama nginx.

    Selepas menerima isyarat, proses utama nginx akan membaca nama fail log daripada fail konfigurasi, membuka semula fail log (dinamakan dengan nama log dalam fail konfigurasi), dan menggunakan pengguna proses pekerja sebagai pemilik fail log itu.

    Selepas membuka semula fail log, proses utama nginx akan menutup fail log dengan nama yang sama dan memberitahu proses pekerja untuk menggunakan fail log yang baru dibuka.

    Proses pekerja segera membuka fail log baharu dan menutup fail log dengan nama yang sama.

    Kemudian anda boleh memproses fail log lama.

    skrip pemotongan automatik log nginx mengikut tarikh adalah seperti berikut

    • skrip pemotongan log nginx
    • pengarang: http://www.nginx.cn
    • !/bin/bash
    • Tetapkan direktori storan fail log

    logs_path="/usr/local/nginx/logs/"

    • Tetapkan fail pid

    pid_path="/usr/local/nginx/nginx.pid"

    • Namakan semula fail log

    mv ${logs_path}access.log ${logs_path}access_$(tarikh -d "semalam" +"%Y%m%d").log

    • Isyaratkan proses utama nginx untuk membuka semula log

    bunuh -USR1 cat ${pid_path}

    Simpan skrip nginx_log.sh di atas, atau klik di sini untuk memuat turun

    kerja persediaan crontab

    0 0 * * * bash /usr/local/nginx/nginx_log.sh
    Ini akan menamakan semula log nginx kepada format tarikh pada 0:00 setiap hari dan menjana semula fail log baharu hari ini.

    Rujukan sumber terperinci: http://www.nginx.cn/255.html

    balas
    0
  • 世界只因有你

    世界只因有你2017-05-16 17:31:36

    Cara paling mudah ialah mengkonfigurasinya terus dalam fail konfigurasi:

    if ($time_iso8601 ~ "^(\d{4})-(\d{2})-(\d{2})T(\d{2})") {
        set $year ;
        set $month ;
        set $day ;
    }
    access_log  /home/wwwlogs/$year-$month-$day-bbs-access.log access;

    balas
    0
  • 天蓬老师

    天蓬老师2017-05-16 17:31:36

    Kaedah ini sering menjana fail tanpa tarikh dan telah ditamatkan

    balas
    0
  • Batalbalas