Putaran dan Pembersihan Log Automatik
Pastikan cakera sihat dengan mengautomatikkan putaran log dan pembersihan fail lama menggunakan logrotate serta skrip berasaskan find yang dijadualkan.
Putaran dan Pembersihan Log Automatik ialah pelajaran Kem Intensif DevOps percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Kem Intensif DevOps, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Kem Intensif DevOps merangkumi sejumlah 4 pelajaran.
Masalah Log yang Semakin Bertambah
Perkhidmatan yang berjalan lama menulis log tanpa henti. Tanpa pengurusan, log akan memenuhi cakera dan menyebabkan sistem ranap. Putaran dan pembersihan membantu mengawalnya.
du -sh /var/log/*Fungsi Putaran Log
Putaran menamakan semula log semasa, memulakan log kosong yang baharu dan menyimpan bilangan salinan lama termampat yang terhad.
- app.log menjadi app.log.1
- Salinan lama dimampatkan dengan gzip
- Salinan paling lama dipadamkan
Memperkenalkan logrotate
logrotate ialah alat Linux standard yang mengautomatikkan putaran berdasarkan saiz atau usia, seperti yang ditakrifkan dalam /etc/logrotate.d/.
cat /etc/logrotate.confKonfigurasi Asas logrotate
Blok konfigurasi menamakan fail log dan dasar putaran.
/var/log/myapp/*.log {
daily
rotate 7
compress
missingok
notifempty
}Memahami Arahan Konfigurasi
Arahan biasa:
dailymembuat putaran setiap harirotate 7menyimpan 7 fail lamacompressmemampatkan log yang diputarmissingokmelangkau jika tiada
Menguji Tanpa Menunggu
Paksa pelaksanaan dengan -f atau lakukan pelaksanaan percubaan dengan -d untuk mengesahkan konfigurasi sebelum mempercayai jadual.
logrotate -d /etc/logrotate.d/myapp
logrotate -f /etc/logrotate.d/myappSkrip postrotate
Banyak perkhidmatan mengekalkan pemegang fail lama dalam keadaan terbuka. Blok postrotate memberitahu perkhidmatan supaya membuka semula lognya selepas putaran.
/var/log/myapp/*.log {
daily
postrotate
systemctl reload myapp
endscript
}Membersihkan Fail Lama dengan find
Untuk pembersihan sekali-sekala, find bersama -mtime mencari fail yang lebih lama daripada N hari lalu memadamkannya.
find /var/log/myapp -name "*.log" -mtime +30 -deleteSkrip Pembersihan yang Selamat
Bungkus pembersihan dalam skrip yang mencatat perkara yang dialih keluar supaya anda mempunyai jejak audit.
#!/bin/bash
DIR=/var/backups
find "$DIR" -name "*.tar.gz" -mtime +14 -print -delete \
>> /var/log/cleanup.log 2>&1Menjadualkan Pembersihan
Letakkan putaran di bawah logrotate (yang sudah dipacu oleh cron) dan jadualkan skrip pembersihan tersuai dengan entri crontab anda sendiri.
# crontab -e
30 2 * * * /usr/local/bin/cleanup.shMemantau Penggunaan Cakera
Tambahkan perlindungan yang memberi amaran apabila partisyen melepasi ambang supaya pembersihan tidak pernah dijalankan terlalu lewat.
USAGE=$(df --output=pcent / | tr -dc "0-9")
[ "$USAGE" -gt 90 ] && echo "Disk over 90%" | mail -s alert rootSemakan Pantas
Uji pengetahuan anda tentang automasi.
Ulang Kaji
Anda telah mengautomatikkan penyelenggaraan log:
- logrotate membuat putaran berdasarkan usia/saiz dengan
rotate,compress,postrotate - Sahkan dengan
-d/-f - Gunakan
find -mtime +N -deleteuntuk pembersihan tersuai - Jadualkan dengan cron dan gunakan amaran penggunaan cakera sebagai perlindungan
Pelajari Kem Intensif DevOps dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 142
- Pelajaran
- 568
Soalan Lazim
Adakah pelajaran “Putaran dan Pembersihan Log Automatik” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Kem Intensif DevOps, termasuk “Putaran dan Pembersihan Log Automatik”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Kem Intensif DevOps merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Putaran dan Pembersihan Log Automatik”?
Pastikan cakera sihat dengan mengautomatikkan putaran log dan pembersihan fail lama menggunakan logrotate serta skrip berasaskan find yang dijadualkan. Anda berlatih Kem Intensif DevOps menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Kem Intensif DevOps?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Kem Intensif DevOps di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.
Berapa lamakah pelajaran “Putaran dan Pembersihan Log Automatik” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Kem Intensif DevOps ini?
Ya. Setiap pelajaran Kem Intensif DevOps menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Menjadualkan Tugasan dengan Cron
- Mengautomatikkan Pentadbiran Sistem
- Projek Penskripan Lanjutan
- Putaran dan Pembersihan Log Automatik