Linux'ta günlük dosyaları (veya loglar), sistemde veya uygulamalarda meydana gelen olayları ve mesajları kaydeden metin dosyalarıdır. Sistem performansını izlemek, teşhis etmek ve analiz etmek için kullanılırlar.
Günlük dosyaları aşağıdakiler hakkında bilgi içerebilir:
/var/log/syslog
veya /var/log/messages
: Genel sistem mesajları./var/log/auth.log
: Kimlik doğrulama olaylarının kayıtları (oturum açma, sudo
kullanımı, vb.)./var/log/kern.log: Çekirdek
mesajları./var/log/dpkg.log
: Paket yükleme ve kaldırma kayıtları (Debian tabanlı sistemler için)./var/log/apache2/
: Apache web sunucusu günlükleri (kuruluysa)./var/log/mysql/
: MySQL veritabanı günlükleri (yüklüyse).Günlükleri görüntüleme: Günlük dosyalarının içeriğini görüntülemek için cat
, less
, more
, tail
ve diğer komutları kullanabilirsiniz.
tail -f /var/log/syslog
Bu komut dosyanın en son satırlarını görüntüleyecek ve çıktıyı gerçek zamanlı olarak güncelleyecektir.
Filtreleme ve arama: grep
komutu, günlüklerde belirli satırları aramanıza olanak tanır.
grep "error" /var/log/syslog
Günlük döndürme: Günlükler diskte çok fazla yer kaplayabilir, bu nedenle eski günlükleri arşivlemek ve yer açmak için günlük döndürme kullanılır (örn. logrotate yardımcı programını kullanarak). Günlük dosyaları, sistem yöneticilerinin ve geliştiricilerin sistem sağlığını takip etmeleri ve sorunları gidermeleri için önemli bir araçtır.
Linux'ta bir günlük dosyası oluşturmak, bilgileri nasıl kaydetmek istediğinize bağlı olarak birkaç şekilde yapılabilir.
Bir günlük dosyası oluşturabilir ve echo
komutunu kullanarak ve çıktıyı yönlendirerek bu dosyaya veri yazabilirsiniz:
echo "This message will be recorded in a log file" >> /path/to/your/logfile.log
>> adds text to the end of the file. If the file does not exist, it will be created.
Dosyanın üzerine yazmak için tek >
kullanın.
Tee
komutu, bir komutun çıktısını bir dosyaya yazmanıza ve aynı zamanda terminalde görüntülemenize olanak tanır:
echo "This message will be recorded in a log file" | tee -a /path/to/your/logfile.log
Dosyanın üzerine yazılmasını önlemek için -a bayrağı "ekle" anlamına gelir.
Bash
'te bir günlük dosyasına mesaj yazacak bir betik oluşturabilirsiniz:
#!/bin/bash
LOGFILE="/path/to/your/logfile.log"
echo "$(date): Running the script" >> "$LOGFILE"
# Your code is here
echo "$(date): Script Completion" >> "$LOGFILE"
Bu kodu myscript.sh
gibi bir dosyaya kaydedin ve çalıştırılabilir hale getirin:
chmod +x myscript.sh
Sonra çalıştırın:
./myscript.sh
Günlükleri syslog
gibi sistem günlüklerine yazmak istiyorsanız, logger
komutunu kullanabilirsiniz:
logger "This message will be recorded in the system log"
Bu, sistem yapılandırmanıza bağlı olarak bu mesajı /var/log/syslog
veya uygun günlük dosyasına yazacaktır.
Python gibi dillerde bir program yazıyorsanız, günlük tutma işlemini gerçekleştirmek için yerleşik kütüphaneleri kullanabilirsiniz:
import logging
logging.basicConfig(filename='/path/to/your/logfile.log', level=logging.DEBUG)
logging.debug('This is a debugging message')
logging.info('This is an informational message')
logging.warning('This is a warning')
logging.error('This is an error message')
logging.critical('This is a critical message')
Bu yöntemler, ihtiyaçlarınıza bağlı olarak Linux'ta günlük dosyaları oluşturmanızı ve yönetmenizi sağlayacaktır.