Konuyu Açan #1
tee ile Çıktı Yönlendirme

Günlük iş akışında komut çıktısını hem ekrana bakarken izlemek hem de bir dosyaya kaydetmek istediğiniz durumlar sıkça karşılaşılır. Linux/Unix dünyasında bunun pratik ve güvenilir bir yolu var: tee komutu. Tee, standart çıktıyı hem terminale yazdırır hem de bir dosyaya yönlendirme yapar; bu sayede akış üzerinde tam kontrol sağlar. Bu yazıda, tee’nin temel kullanımlarını, farklı yönlendirme seçeneklerini ve yaygın hataları örneklerle ele alacağım.


  1. Temel kullanım ve basit örnek

  • Bir komutun çıktısını hem ekrana göstermek hem de dosyaya kaydetmek için:
    KOD
    1ls -la | tee liste.txt

  • Bu komut, mevcut dizindeki dosya ve klasörleri ekrana basar ve aynı içeriği liste.txt dosyasına yazar. Dosya zaten varsa üzerine yazılır; yoksa oluşturulur. Bu davranış, sudo gibi yetkili işlemlerde bile aynen uygulanır.

    1. Dosya içeriğini koruma ve ekleme modu

  • Çıktıyı mevcut dosyaya eklemek için:

    KOD
    1ps aux | tee -a kaynaklar.log

    KOD
    1tee -a
    ile çıktı dosyasının sonuna eklenir, önceki içerik değiştirilmez. Bu mod, sürekli olarak süreç bilgilerinin günlüklenmesi için idealdir.
  • Birden çok dosyaya aynı anda yazmak mümkün:
    KOD
    1echo "güncel durum" | tee durum1.log durum2.log


    1. Hataların da yönlendirilmesi

  • Standart hata çıktısını da içermek için:
    KOD
    1grep --line-number 'panic' /var/log/system.log 2>&1 | tee hatalar.txt

    [/quote]

    1. Dosya yoluyla çıktı akışını yönetme

  • Kademeli yönlendirme ve daha karmaşık akışlar için köprü kurmak faydalı:
    KOD
    1find /var -type f -name '*.log' 2>/dev/null | tee -a loglistesi.txt | wc -l > adetler.txt

    Bu örnek, bulunulan dosyaları ekrana ve loglistesi.txt’ye yazar, ayrıca hata çıktısını reddeder; ardından eklenen satır sayısını adetler.txt dosyasına kaydeder.

    1. Tee ile zaman damgası kullanımı

  • Çıktıyı her satır için zaman damgası ile kaydetmek için şöyle bir yaklaşım kullanılabilir:
    KOD
    1date "+%F %T" | tee zamani.txt

    Gerçek dünyada bu yöntemi komut boru zincirlerine entegre etmek, olay günlüğünün net ve analiz edilebilir kalmasını sağlar.

    Kapanış
    Çıktının aynı anda ekrana görünmesi ve bir dosyaya kaydedilmesi ihtiyacı, günlük yönetimi ve hata takibi için sık karşılaşılan bir senaryodur. tee, bu ihtiyacı sade ve güvenilir bir şekilde çözer; özellikle uzun çalışan süreçleri izlerken veya çoklu hedeflere logging yaptığınızda çıtayı düşürmez. Bu konuya ilişkin kendi pratik kullanım senaryolarınız varsa, düğümlenmiş akışlar ve özel yönlendirme ihtiyaçları için paylaşımlarınızı merakla bekliyorum.
  • Yanıt vermek için giriş yapmış olmalısınız.

    0 alıntı seçildi