Logrotate ialah alat baris perintah Linux untuk mengurus entri log. Alat ini membantu melaksanakan pelbagai jenis tugas pada entri log oleh pentadbir seperti mengehadkan fail log yang diputar, memampatkan fail log yang diputar, memadam fail log yang tidak diperlukan, melaksanakan skrip shell tertentu berdasarkan fail log, dsb. daripada arahan 'logrorate' untuk menguruskan fail log dengan cara yang berbeza ditunjukkan dalam tutorial ini menggunakan berbilang contoh.
Semak Versi Logrotate yang Dipasang
Perintah 'logrotate' dipasang secara lalai dalam versi baharu sistem pengendalian Ubuntu. Jalankan arahan berikut untuk menyemak versi arahan 'logrotate' yang dipasang:
$ logrotate --versi
Entri log bagi aplikasi yang berbeza disimpan dalam folder “/var/log” secara lalai. Kandungan serupa berikut akan muncul jika anda menyemak kandungan folder.
$ ls / adalah / log
Tetapkan Konfigurasi 'Logrotate'.
Menetapkan nilai | Tujuan |
harian/mingguan/bulanan/tahunan | Ia mentakrifkan tempoh masa untuk memutarkan log. |
nombor putar | Ia mentakrifkan bilangan fail yang akan disimpan sebelum mengalih keluar fail log lama. |
memampatkan | Ia digunakan untuk memampatkan fail log. |
compresscmd | Ia digunakan untuk menetapkan arahan 'compress'. Gzip ialah arahan lalai. |
uncompresscmd | Ia digunakan untuk menetapkan arahan 'nyahmampatkan'. Gunzip ialah arahan lalai. |
delaycompress | Ia digunakan untuk melambatkan proses pemampatan fail log. |
pemberitahuan kosong | Ia digunakan untuk tidak memutar fail kosong. |
saya hilang | Jika ia ditetapkan, tiada ralat dihasilkan untuk fail log yang hilang. |
saiz | Ia digunakan untuk menetapkan had untuk mula memutar fail log. |
tarikhext | Ia digunakan untuk menambah nilai tarikh sebagai akhiran fail putar. |
copytruncate | Ia digunakan untuk membuat salinan fail asal. |
praputar | Ia digunakan untuk menjalankan skrip sebelum memutar fail log. |
postrotate | Ia digunakan untuk menjalankan skrip selepas memutar fail log. |
cipta | Ia digunakan untuk mencipta fail log dengan keistimewaan root. |
Sintaks:
Sintaks arahan 'logrotate' diberikan seperti berikut:
logrotate [ PILIHAN ] config_file_path
Jenis pilihan yang berbeza boleh digunakan untuk tujuan yang berbeza dengan arahan 'logrotate'.
Pilihan Logrotate
Beberapa pilihan berguna arahan 'logrotate' disebut dalam perkara berikut:
-f, –daya | Ia digunakan untuk membuat putaran secara paksa apabila diperlukan. |
-d, –nyahpepijat | Ia digunakan untuk mendayakan mod nyahpepijat semasa putaran. |
-m, –mel |
Ia digunakan untuk menghantar e-mel semasa putaran. |
-s, –state |
Ia digunakan untuk fail keadaan alternatif. |
–penggunaan | Ia digunakan untuk mencetak maklumat penggunaan. |
–?, –bantuan | Ia digunakan untuk mencetak mesej bantuan. |
-v, –verbose | Ia digunakan untuk mencetak dalam mod verbose. |
Fail Konfigurasi Logrotate
Fail konfigurasi logrotate utama terletak di lokasi '/etc/logrotate.conf'. Jalankan arahan berikut untuk membuka fail dalam editor nano:
$ nano / dan lain-lain / logrotate.confTetapan lalai bagi arahan 'logrotate' ditunjukkan dalam fail 'logrotate.conf'. Arahan “include” digunakan dalam fail untuk mendapatkan semula konfigurasi yang terdapat dalam direktori “/etc/logrotate.d”.
Contoh 1: Cipta Fail Konfigurasi Logrotate Mudah
Buat fail log sampel bernama '/var/log/test.log' dengan data log sampel. Jalankan arahan berikut untuk membuka editor nano untuk mencipta fail 'logrotate.conf' baharu dalam lokasi folder '/etc/tmp'. Cipta folder “/tmp” dengan keistimewaan root jika ia tidak dibuat sebelum ini.
$ nano / dan lain-lain / tmp / logrotate.confTambahkan kandungan berikut pada fail untuk fail “/var/log/test.log”. Mengikut tetapan, fail 'test.log' akan diputar setiap hari jika saiz fail melebihi 5K:
/ adalah / log / ujian.log {setiap hari
saiz 5K
miliknya akar adm
}
Jalankan arahan berikut untuk menyemak saiz fail log:
$ ls -l / adalah / log / ujian.logJalankan arahan 'logrotate' selepas mencipta fail konfigurasi.
$ sudo logrotate / dan lain-lain / tmp / logrotate.confJalankan arahan berikut sekali lagi untuk menyemak saiz fail log selepas melaksanakan arahan 'logrotate':
$ ls -l / adalah / log / ujian.logSaiz fail 'test.log' ialah 1K+. Jadi, tiada putaran dilakukan berdasarkan tetapan konfigurasi.
Tukar nilai saiz kepada 1K dalam fail “/etc/tmp/logrotate.conf” dan jalankan arahan “ls” sekali lagi untuk menyemak saiz fail “/var/log/test.log”. Mengikut output, fail log diputar dan dipadam kerana had saiz melebihi.
Contoh 2: Penggunaan Logrotate Copytruncate
Cipta atau ubah suai fail “/etc/tmp/logrotate.conf” dengan tetapan berikut untuk menunjukkan penggunaan copytruncate. Mengikut tetapan baharu, logrotate mencipta salinan fail asal dengan menjadikan saiz fail asal kepada sifar.
/ adalah / log / ujian.log {berputar 5
saiz 1 k
copytruncate
miliknya akar adm
}
Jalankan arahan berikut untuk menyemak saiz fail 'test.log':
$ ls -l / adalah / log / ujian.logJalankan arahan 'logrotate' selepas mencipta fail konfigurasi.
$ sudo logrotate / dan lain-lain / tmp / logrotate.confJalankan arahan berikut sekali lagi untuk menyemak saiz fail 'test.log' selepas melaksanakan arahan 'logrotate':
$ ls -l / adalah / log / ujian.logSaiz fail asal menjadi 0 selepas melaksanakan perintah 'logrotate' untuk tetapan copytruncate.
Contoh 3: Penggunaan Logrotate Compress
Cipta atau ubah suai fail “/etc/tmp/logrotate.conf” dengan tetapan berikut untuk menunjukkan penggunaan pemampat. Mengikut tetapan baharu, logrotate mencipta fail kompres bagi fail asal.
/ adalah / log / ujian.log {berputar 5
saiz 1 k
memampatkan
cipta 770 akar adm
}
Jalankan arahan berikut untuk menyemak senarai fail dan folder '/var/log':
$ ls / adalah / log /Jalankan arahan 'logrotate' selepas mencipta fail konfigurasi.
$ sudo logrotate / dan lain-lain / tmp / logrotate.confJalankan arahan berikut sekali lagi untuk menyemak senarai fail dan folder '/var/log':
$ ls / adalah / log /Fail termampat bagi fail “test.log” dicipta dengan nama “test.log.1.gz” dan fail asal dialih keluar.
Contoh 4: Penggunaan Logrotate Dateext
Cipta atau ubah suai fail “/etc/tmp/logrotate.conf” dengan tetapan berikut untuk menunjukkan penggunaan dateext. Mengikut tetapan baharu, logrotate mencipta fail kompres bagi fail asal dengan nilai tarikh.
adalah / log / ujian.log {miliknya akar adm
berputar 5
saiz 1 k
memampatkan
cipta 770 akar adm
tarikhext
}
Jalankan arahan 'logrotate' selepas mencipta fail konfigurasi.
$ sudo logrotate / dan lain-lain / tmp / logrotate.confJalankan arahan berikut untuk menyemak senarai fail dan folder '/var/log':
$ ls -l / adalah / log /Fail termampat bagi fail 'test.log' dicipta dengan nama 'test.log.20240129.gz' dan fail asal dialih keluar.
Contoh 5: Penggunaan Logrotate Maxage
Cipta atau ubah suai fail “/etc/tmp/logrotate.conf” dengan tetapan berikut untuk menunjukkan penggunaan maxage. Mengikut tetapan, logrotate menyimpan lima entri log jika saiz fail log melebihi 1K selepas satu hari.
/ adalah / log / ujian.log {miliknya akar adm
berputar 5
saiz 1 k
memampatkan
maxage 1
}
Jalankan arahan 'logrotate' berikut untuk menyimpan output dalam fail log lain bernama 'out.log':
$ sudo logrotate -s = / adalah / log / keluar.log / dan lain-lain / tmp / logrotate.confMenurut output berikut, fail 'out.log' dibuat selepas melaksanakan arahan 'logrotate':
Contoh 6: Penggunaan Logrotate Missingok
Cipta atau ubah suai fail “/etc/tmp/logrotate.conf” dengan tetapan berikut. Di sini, fail log 'testfile.log' tidak wujud dalam folder '/var/log'.
/ adalah / log / testfile.log {miliknya akar adm
berputar 5
saiz 1 k
memampatkan
}
Mesej ralat dicetak selepas melaksanakan arahan 'logrotate'.
Tambah tetapan 'missingok' dalam fail konfigurasi logrotate dan jalankan arahan 'logrotate' sekali lagi. Tiada ralat dicetak untuk fail log yang hilang.
Contoh 7: Penggunaan Logrotate Prerotate
Buat fail Bash bernama 'test.sh' dengan skrip berikut yang mencetak mesej mudah. Fail digunakan dalam contoh logrotate ini untuk menunjukkan penggunaan praputar dalam fail konfigurasi logrotate.
test.sh#!/bin/bash
bergema 'contoh logrotate...'
Selepas mencipta fail, jalankan arahan berikut untuk menetapkan kebenaran pelaksanaan fail ini untuk semua pengguna:
$ chmod a+x / rumah / persefahaman / test.shSekarang, buat atau ubah suai fail “/etc/tmp/logrotate.conf” dengan tetapan berikut. Mengikut tetapan, logrotate menyimpan lima entri log jika saiz fail log melebihi 1K dan fail 'test.sh' dilaksanakan sebelum putaran.
/ adalah / log / ujian.log {miliknya akar adm
berputar 5
saiz 1 k
praputar
/ rumah / persefahaman / ujian.sh
skrip akhir
}
Output fail 'test.sh' ditunjukkan selepas melaksanakan arahan 'logrotate':
Kesimpulan
Pelbagai kegunaan arahan 'logrotate' ditunjukkan dalam tutorial ini menggunakan berbilang contoh yang akan membantu pengguna Linux mengetahui kegunaan arahan dan mengurus fail log dengan betul.