Kem Intensif DevOps · Pelajaran

Putaran dan Pembersihan Log Automatik

Pastikan cakera sihat dengan mengautomatikkan putaran log dan pembersihan fail lama menggunakan logrotate serta skrip berasaskan find yang dijadualkan.

Pelajaran 4 daripada 413 langkah

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.conf

Konfigurasi 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:

  • daily membuat putaran setiap hari
  • rotate 7 menyimpan 7 fail lama
  • compress memampatkan log yang diputar
  • missingok melangkau 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/myapp

Skrip 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 -delete

Skrip 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>&1

Menjadualkan 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.sh

Memantau 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 root

Semakan 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 -delete untuk pembersihan tersuai
  • Jadualkan dengan cron dan gunakan amaran penggunaan cakera sebagai perlindungan
Percuma untuk bermula

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

  1. Menjadualkan Tugasan dengan Cron
  2. Mengautomatikkan Pentadbiran Sistem
  3. Projek Penskripan Lanjutan
  4. Putaran dan Pembersihan Log Automatik
← Kembali ke Kem Intensif DevOps