man/system_admin
man · Sistem Yönetimi

$ syslog

Bölüm 1 · Sistem Yönetimi

Apple System Log aracı

Söz Dizimi

     syslog -help

     syslog -s [-r host] [-l level] message...

     syslog -s [-r host] -k key val [key val] ...

     syslog -C

     syslog [-f file ...] [-d dir ...] [-B] [-w [n]] [-F format] [-T format] [-E format] expression

     syslog [-f file ...] [-d dir ...] -x file expression

     syslog -c process [mask]

     syslog -config [options]

     syslog -module [name [action]]

Açıklama

syslog, Apple System Log (ASL) sistemiyle ilgili çeşitli görevler için kullanılan bir komut satırı aracıdır. Günlük mesajlarını göndermek ve görüntülemek, günlük mesajlarını ASL formatındaki veri deposu dosyalarına kopyalamak ve istemci süreçlerinden gelen günlük mesajlarının akışını kontrol etmek için mekanizmalar sağlar.

-help seçeneğiyle çalıştırıldığında syslog bir kullanım mesajı yazdırır.

NOT: Çoğu sistem günlüğü yeni bir günlük kaydetme (logging) sistemine taşınmıştır. Daha fazla bilgi için log(1) sayfasına bakın.

MESAJ GÖNDERME -s seçeneği, günlük mesajlarını yerel olarak ya da -r host seçeneği kullanılmışsa uzak bir sunucudaki syslogd(8) günlük mesajı arka plan programına (daemon) göndermek için kullanılır.

Komutun iki ana formu vardır. Eğer -k seçeneği kullanılırsa, bunu bir anahtar ve değer listesi takip etmelidir. Argüman olarak verilen anahtarlar ve değerlerle birlikte sunucuya yapılandırılmış bir mesaj gönderilecektir. Eğer bir anahtar veya değer içinde boşluk barındırıyorsa, tırnak içine alınmalıdır.

Günlük mesajının metninin, “Message” anahtarını takip eden bir değer olarak belirtilmesi gerektiğine dikkat edin.

Eğer -k seçeneği belirtilmemişse, komut satırının geri kalanı mesaj metni olarak kabul edilir. Mesajın günlük seviyesini (önceliğini) ayarlamak için metnin önüne -l level eklenebilir. Seviyeler, syslog(3) veya asl(3) içinde belirtilen günlük seviyelerine karşılık gelen tam sayı değerleri veya bir dize (string) olabilir. Dize değerleri büyük/küçük harfe duyarsızdır ve şunlardan biri olmalıdır:

Emergency (seviye 0) Alert (seviye 1) Critical (seviye 2) Error (seviye 3) Warning (seviye 4) Notice (seviye 5) Info (seviye 6) Debug (seviye 7)

“Panic” dizesi “Emergency” için bir takma addır (alias).

Eğer -l seçeneği atlanırsa, günlük seviyesi varsayılan olarak 7 (Debug) olur.

syslog, bir seviye belirtimi için yalnızca bir veya iki başlangıç karakteri gerektirir. Çoğu durumda tek bir karakter yeterlidir. Panic / Emergency için “P” veya “Em” ve Error için “Er” veya “X” kullanın.

MESAJLARI OKUMA syslogd arka plan programı, günlük mesajlarını filtreler ve farklı çıktı akışlarına kaydeder. Bir modül, mesajları syslog.conf(5) dosyasında belirtilen dosyalara kaydeder. Bu günlük dosyaları, herhangi bir dosya yazdırma veya düzenleme aracıyla incelenebilir, örneğin:

cat /var/log/system.log

Başka bir modül ise mesajları bir veri deposuna (/var/log/asl) kaydeder.

Herhangi bir argüman olmadan çalıştırıldığında syslog, aktif veri deposundaki tüm mesajları getirir. Mesajlar daha sonra, aşağıda açıklanan biçimlendirme seçeneklerine ve karakter kodlamasına tabi olarak standart çıktıya yazdırılır. Bazı günlük mesajları okuma erişimi kontrollüdür, bu nedenle yalnızca syslog'u çalıştıran kullanıcı tarafından okunabilir olan mesajlar getirilir ve yazdırılır.

-C seçeneğiyle çalıştırıldığında syslog, konsol mesajlarını getirir ve yazdırır. -C seçeneği aslında şu ifadenin bir takma adıdır:

-k Facility com.apple.console

Daha fazla ayrıntı için aşağıdaki İFADELER bölümüne bakın.

-f seçeneğine argüman olarak bir veya daha fazla dosya adı sağlanarak bireysel ASL veri deposu dosyaları okunabilir. Bu, arşivlenmiş dosyaları, alternatif disk bölümlerindeki dosyaları veya -x seçeneğiyle dışa aktarma dosyaları olarak oluşturulmuş dosyaları ararken yararlı olabilir.

-d seçeneğini bir dizin yolları listesi takip edebilir. syslog, bu dizinlerdeki tüm ASL veri deposu dosyalarını okuyacak veya arayacaktır. Okunamayan tüm dosyalar atlanacaktır. -d seçeneğini “archive” adıyla belirtmek, varsayılan ASL arşiv dizini olan /var/log/asl.archive içindeki tüm okunabilir dosyaları açacaktır. -d seçeneğini “store” adıyla belirtmek, ASL depo dizini olan /var/log/asl içindeki tüm okunabilir dosyaları açacaktır.

Mac OS X 10.5 (Leopard) üzerinde syslogd tarafından yazılmış eski ASL veritabanı dosyaları da -f seçeneği kullanılarak okunabilir. Ancak aynı anda yalnızca tek bir eski veritabanı okunabilir veya aranabilir. Bir eski veritabanının, -f ve -x seçeneklerinin bir kombinasyonu kullanılarak okunup yeni bir ASL veri deposu formatındaki dosyaya kopyalanabileceğini unutmayın.

-B seçeneği, syslog'un son sistem başlangıcından itibaren mesajları işlemeye başlamasına neden olur. -w ile birlikte kullanılırsa, syslog yeni mesajları beklemeden önce son sistem başlangıcından bu yana olan tüm mesajlar görüntülenir veya bir ifadeye göre eşleştirilir.

-w seçeneği syslog'un yeni mesajları beklemesine neden olur. Varsayılan olarak syslog, son 10 mesajı yazdırır ve ardından veri deposuna yeni mesajlar eklenmesini bekler. -w seçeneğini takip eden bir sayı, yazdırılacak mesaj sayısını belirtir ve varsayılan değer olan 10'u geçersiz kılar. Örneğin:

syslog -w 20

Yeni mesajları izlemeden önce veri deposundaki tüm mesajları görüntülemek için “all” değerini kullanın. “boot” değeri, yeni mesajları izlemeden önce son sistem başlangıcından bu yana olan mesajları görüntüleyecektir. “-w boot” belirtmek, -w ve -B seçeneklerini birlikte kullanmakla eşdeğerdir.

syslog'u -w seçeneğiyle kullanmak, örneğin şu komutla bir günlük dosyasını izlemeye benzer:

tail -f /var/log/system.log

-w seçeneği yalnızca sistemin ASL veri deposu okunurken veya tek bir veri deposu dosyası okunurken ve mesajlar standart çıktıya yazdırılırken kullanılabilir.

Eğer -x file seçeneği belirtilirse, mesajlar yazdırılmak yerine belirtilen dosyaya kopyalanır. Dosya mevcut değilse oluşturulacaktır.

-x seçeneği olmadan çağrıldığında mesajlar standart çıktıya yazdırılır. Mesajın öncelik seviyesinin açılı ayraçlar arasında yazdırılması hariç, mesajlar system.log dosyasında kullanılana benzer bir formatta yazdırılır.

Çıktı formatı, -F format seçeneği belirtilerek değiştirilebilir. Yazdırılamayan karakterler ve kontrol karakterleri varsayılan olarak kodlanır. Metin kodlaması -E seçeneği kullanılarak kontrol edilebilir (aşağıya bakın). format değeri aşağıdakilerden biri olabilir:

bsd System log dosyaları için syslogd arka plan programı tarafından kullanılan format, örn. /var/log/system.log.

std Standart (varsayılan) format. “bsd” formatına benzer, ancak mesaj öncelik seviyesini de içerir.

raw Tüm mesaj yapısını yazdırır. Her anahtar/değer çifti köşeli parantez içine alınır. Gömülü kapatma parantezleri ve boşluk karakterleri kaçış karakteriyle korunur (escape edilir). Zaman damgaları varsayılan olarak epoch'tan bu yana geçen saniye cinsinden yazdırılır, ancak -T seçeneği belirtilirse (aşağıya bakın) yerel saatle veya UTC olarak da yazdırılabilir.

xml Mesaj listesi bir XML özellik listesi (property list) olarak yazdırılır. Her mesaj, bir dizi içindeki bir sözlük (dictionary) olarak temsil edilir. Sözlük anahtarları, mesaj anahtarlarını temsil eder. Sözlük değerleri dizelerdir.

Yukarıdaki format stillerinin her birini isteğe bağlı olarak bir nokta karakteri ve bir tam sayı değeri takip edebilir, örneğin:

syslog -F std.4

Bu, saniye altı (sub-second) zaman değerlerinin yazdırılmasına neden olur. Yukarıdaki örnekte, 4 ondalık basamak yazdırılacaktır. Saniye altı zaman değerleri, ASL mesajındaki TimeNanoSec anahtarının değerinden gelir. Eğer TimeNanoSec anahtarı yoksa sıfır değeri kullanılır.

format argümanının değeri ayrıca özel bir yazdırma formatı dizesi de olabilir. Kabuğun (shell) özel karakterleri değiştirmesini ve boşluklarda bölünmesini önlemek için, özel bir format çoğu durumda tek tırnak içine alınmalıdır.

Özel format dizeleri, adlandırılmış anahtarla ilişkili değere genişletilecek olan “$Name”, “$(Name)” veya “$((Name)(format))” biçimindeki değişkenleri içerebilir. Örneğin, şu komut:

syslog -F '$Time $Host $(Sender)[$(PID)] <$((Level)(str))>: $Message'

“std” formatına benzer bir çıktı üretir. Çoğu durumda basit “$Name” biçimi yeterlidir. Bununla birlikte, eğer ad boşlukla sınırlandırılmamışsa ikinci biçim olan “$(Name)” kullanılmalıdır. Üçüncü biçim, değerin farklı formatlarda yazdırılmasına olanak tanır. Örneğin, bir mesaj öncelik seviyesi bir tam sayı değeri (örn. “3”) veya bir dize (``Error'') olarak görünebilir. Aşağıdaki yazdırma formatları bilinmektedir.

$((Level)(str)) Bir Level değerini dize olarak biçimlendirir, örneğin “Error”, “Alert”, “Warning” vb. $(Level) or $Level ifadesinin değeri 0 ile 7 arasında bir tam sayı olarak biçimlendirdiğini unutmayın.

$((Time)(sec)) Bir Time değerini Epoch'tan bu yana geçen saniye sayısı olarak biçimlendirir.

$((Time)(raw)) $((Time)(sec)) için takma ad.

$((Time)(local)) Bir Time değerini “Ayı gg sa:dk:sn” biçiminde bir dize olarak biçimlendirir; burada Ayı ayın kısaltması, gg gün (1 - 31) ve sa:dk:sn saattir. Yerel saat dilimi kullanılır.

$((Time)(lcl)) $((Time)(local)) için takma ad.

$((Time)(utc)) Eşgüdümlü Evrensel Zaman (UTC) veya “Zulu” saat dilimini kullanarak, bir Time değerini “yyyy-aa-gg sa:dk:snZ” biçiminde bir dize olarak biçimlendirir.

$((Time)(zulu)) $((Time)(utc)) için takma ad.

$((Time)(X)) Burada X, A - Z veya a - z aralığındaki herhangi bir harf olabilir. Belirtilen denizcilik saat dilimini (nautical timezone) kullanarak Zamanı “yyyy-aa-gg sa:dk:snX” formatında biçimlendirir. Z, UTC/Zulu saati ile aynıdır. A - M saat dilimleri (J hariç), Zulu saat diliminin doğusuna doğru birer saat azalır. N - Y saat dilimleri, Z'nin batısına doğru birer saat artar. M ve Y aynı saat süresine sahiptir ancak aralarında bir gün fark vardır. J, yerel saat dilimini belirtmek için kullanılır. $((Time)(J)) kullanılarak yazdırıldığında çıktı formatı, sonda bir saat dilimi harfi olmaksızın “yyyy-aa-gg sa:dk:sn” şeklindedir.

$((Time)(JZ)) Yerel saat dilimini belirtir. UTC'den saat dilimi farkı tarih ve saati takip eder. Saat, “yyyy-aa-gg sa:dk:sn[+|-]SA[:DK]” olarak biçimlendirir. Saat dilimi farkındaki dakikalar yalnızca sıfırdan farklıysa yazdırılır.

$((Time)(ISO8601)) Yerel saat dilimini ve ISO 8601 genişletilmiş formatını belirtir. UTC'den saat dilimi farkı tarih ve saati takip eder. Saat, “yyyy-aa-ggTsa:dk:sn[+|-]SA[:DK]” olarak biçimlendirilir. Saat dilimi farkındaki dakikalar yalnızca sıfırdan farklıysa yazdırılır. Bunun “JZ” formatından tek farkının, tarih ve saati ayıran bir “T” karakteri içermesi olduğunu unutmayın.

$((Time)(ISO8601B)) Yerel saat dilimini ve ISO 8601 temel formatını şu biçimde belirtir: “yyyyaaggTsadksn[+|-]SA[:DK]”.

$((Time)(ISO8601Z)) UTC/Zulu saatini ve ISO 8601 genişletilmiş formatını şu biçimde belirtir: “yyyy-aa-ggTsa:dk:snZ”.

$((Time)(ISO8601BZ)) UTC/Zulu saatini ve ISO 8601 temel formatını şu biçimde belirtir: “yyyyaaggTsadksnZ”.

$((Time)([+|-]HH[:MM])) UTC'ye belirtilen saat (HH) ve isteğe bağlı olarak dakika (MM) kadar bir farkı (+ veya -) belirtir. Değer, “yyyy-aa-gg sa:dk:sn[+|-]SA[:DK]” biçiminde bir dize olarak biçimlendirilir. Saat dilimi farkındaki dakikalar yalnızca sıfırdan farklıysa yazdırılır.

Zaman (Time) değerleri için yukarıda listelenen yazdırma formatlarının her birini isteğe bağlı olarak bir nokta karakteri ve bir tam sayı değeri takip edebilir. Bu durumda, saniye altı zaman değerleri yazdırılacaktır. Örneğin, aşağıdaki satır mesajları bir UTC zaman formatıyla yazdırır ve 6 basamaklı saniye altı süreyi içerir:

syslog -F '$((Time)(utc.6)) $Host $(Sender)[$(PID)] <$((Level)(str))>: $Message'

Zaman değerlerinin formatını belirtmek için özel bir format kullanılmıyorsa, Zaman değerleri genellikle yerel saate dönüştürülür; ancak -F raw seçeneği kullanıldığında durum farklıdır, bu durumda zamanlar epoch'tan bu yana geçen saniye sayısı olarak yazdırılır. -T format seçeneği, zaman damgaları için kullanılan formatı kontrol etmek amacıyla kullanılabilir. format değeri aşağıdakilerden biri olabilir:

sec veya raw Zamanlar epoch'tan bu yana geçen saniye sayısı olarak yazdırılır.

local veya lcl Zamanlar yerel saat dilimine dönüştürülür ve mmm dd hh:mm:ss formatıyla yazdırılır; burada mmm üç karakterle kısaltılmış ay adıdır.

utc veya zulu Zamanlar UTC'ye dönüştürülür ve yyyy-aa-gg sa:dk:snZ formatıyla yazdırılır.

A-Z Zamanlar belirtilen denizcilik saat dilimine dönüştürülür ve UTC ile aynı formatta yazdırılır. “J” yerel saat dilimi olarak yorumlanır ve aynı formatta yazdırılır ancak sonda bir saat dilimi harfi yer almaz.

JZ yerel saat dilimi olarak yorumlanır ve yyyy-aa-gg sa:dk:sn[+|-]SA[:DK] formatıyla yazdırılır. Sondaki “[+|-]SA[:DK]” dizesi, UTC'den yerel saat dilimi farkını saat cinsinden, ya da dakikalar sıfırdan farklıysa saat ve dakika cinsinden temsil eder.

ISO8601 Zamanlar ISO 8601 tarafından belirtilen formatta yazdırılır: yyyy-aa-ggTsa:dk:sn[+|-]SA[:DK]. Tarih ve saat bileşenlerini bir “T” karakterinin ayırması dışında bu, “JZ” formatıyla aynıdır.

[+|-]hh[:mm] Zamanı ayarlamak için belirtilen fark kullanılır.

Yukarıdaki zaman formatlarının her birini isteğe bağlı olarak bir nokta karakteri ve bir tam sayı değeri takip edebilir. Bu durumda, saniye altı zaman değerleri yazdırılacaktır. Örneğin:

syslog -T bsd.3

-u seçeneği -T utc için kısa bir formdur.

Varsayılan olarak, kontrol karakterleri ve yazdırılamayan karakterler çıktı akışında kodlanır. Bazı durumlarda bu, mesajların görünüm olarak daha az doğal olmasına neden olabilir. Kodlama, günlük mesajındaki tüm bilgileri korumak ve kötü niyetli kullanıcıların günlük mesajlarındaki bilgileri taklit etmesini (spoofing) veya gizlemesini önlemek için tasarlanmıştır.

“std”, “bsd” ve “raw” formatlarındaki metinler, -c seçeneğiyle vis aracı tarafından yapıldığı gibi kodlanır. Yeni satırlar ve sekmeler (tabs) de sırasıyla "\n" ve "\t" olarak kodlanır. “raw” formatında, günlük mesajı anahtarlarına gömülü boşluk karakterleri "\s" olarak kodlanır ve gömülü parantezler "[" ve "]" olarak yazdırılacak şekilde kaçış karakteriyle korunur.

XML formatındaki çıktı, anahtarların geçerli UTF8 dizeleri olmasını gerektirir. Geçerli UTF8 olmayan anahtarlar yoksayılır ve ilişkili değer yazdırılmaz.

Geçerli UTF8 içeren değerler dize olarak yazdırılır. Ve işareti (&), küçüktür (<), büyüktür (>), tırnak işareti (") ve kesme işareti (') karakterleri XML kurallarına göre kodlanır. Gömülü kontrol karakterleri, NN karakterin onaltılık (hexadecimal) değeri olmak üzere “&#xNN;” şeklinde kodlanır.

Geçerli UTF8 içermeyen değerler base-64 ile kodlanır ve veri nesneleri (data objects) olarak yazdırılır.

-E format seçeneği, metin kodlamasını açıkça kontrol etmek için kullanılabilir. format değeri aşağıdakilerden biri olabilir:

safe Bu, syslog çıktısı için varsayılan kodlamadır. Geri al (backspace) karakterlerini ^H olarak kodlar. Satır başı (carriage return) karakterleri yeni satırlara dönüştürülür. Mesaj metninin girintili olması için yeni satırlardan sonra bir sekme (tab) karakteri eklenir.

vis Yukarıda açıklandığı gibi, “vis -c” komutu tarafından üretilene benzer C stili ters eğik çizgi (backslash) kodlaması.

none Kodlama kullanılmaz.

“safe” kodlamasının amacı, bariz mesaj taklidini (spoofing) veya hasarı önlemektir. Yazdırılan mesajların görünümü, terminal ayarlarına ve UTF-8 dize işlemeye bağlı olacaktır. “safe” veya “none” seçenekleri kullanılarak yazdırılan mesajların bozuk olması veya kullanıcı tarafından sağlanan mesaj metnine gömülü kontrol karakterleri ve kontrol dizilerinin kullanımı yoluyla manipülasyona maruz kalması mümkündür. “vis” kodlaması, mesaj metninin yazdırılan temsili manipüle etmek için kullanılmış olabileceğine dair herhangi bir şüphe varsa, mesajları görüntülemek için kullanılmalıdır.

Daha fazla komut satırı seçeneği belirtilmezse, syslog tüm mesajları görüntüler veya tüm mesajları bir veri deposu dosyasına kopyalar. Ancak, -k ve -o seçenekleri kullanılarak bir ifade belirtilebilir.

İFADELER

İfadeler eşleşme kriterlerini belirtir. İlgi duyulan mesajları aramak için kullanılabilirler.

Basit bir ifadenin biçimi şöyledir:

-k key [[op] val]

-k seçeneğini bir, iki veya üç argüman takip edebilir. Tek bir argüman, değere bakılmaksızın bir mesajın belirtilen anahtara sahip olması durumunda eşleşmenin gerçekleşmesini sağlar. İki argüman belirtilirse, bir mesaj verilen anahtar için tam olarak belirtilen değere sahip olduğunda eşleşme gerçekleşir. Örneğin, portmap süreci tarafından gönderilen tüm mesajları bulmak için:

syslog -k Sender portmap

-C seçeneğinin şu ifadenin bir takma adı olarak kabul edildiğini unutmayın:

-k Facility com.apple.console

Bu, konsol mesajlarını aramak için hızlı bir yol sağlar.

Üç argüman verilirse, bunlar -k key operation value biçimindedir. syslog aşağıdaki eşleşme operatörlerini destekler:

eq eşit (equal) ne eşit değil (not equal) gt büyüktür (greater than) ge büyüktür veya eşittir (greater than or equal to) lt küçüktür (less than) le küçüktür veya eşittir (less than or equal to)

Ek olarak, operatörün önüne aşağıdaki değiştiricilerden (modifier) biri veya daha fazlası gelebilir:

C büyük/küçük harf duyarsız (case-fold) R düzenli ifade / regular expression (bkz. regex(3)) S alt dize (substring) A önek (prefix) Z sonek (suffix) N sayısal karşılaştırma (numeric comparison)

İki veya daha fazla basit ifade birleştirilerek daha karmaşık arama ifadeleri oluşturulabilir. Birden fazla “-k key [[op] val]” terimi içeren karmaşık bir ifade, anahtar-değer işlemlerinin tümü eşleştiğinde bir mesajla eşleşer. Mantıksal olarak sonuç, tüm anahtar-değer işlemlerinin VE (AND) işlemine tabi tutulmasıdır. Örneğin:

syslog -k Sender portmap -k Time ge -2h

portmap tarafından son 2 saat içinde gönderilen tüm mesajları bulur (-2h "iki saat önce" anlamına gelir).

-o seçeneği, bir VEYA (OR) işlemi sağlayarak daha da karmaşık aramalar oluşturmak için kullanılabilir. Eğer -o seçenekleriyle ayrılmış iki veya daha fazla alt ifade verilirse, bir mesaj bu alt ifadelerden herhangi biriyle eşleştiğinde bir eşleşme gerçekleşir. Örneğin, “Sender” değeri “portmap” olan VEYA sayısal öncelik seviyesi 4 veya daha az olan tüm mesajları bulmak için:

syslog -k Sender portmap -o -k Level Nle 4

Günlük öncelik seviyeleri dahili olarak 0 ile 7 arasında bir tam sayı olarak işlenir. İfadelerdeki seviye (Level) değerleri tam sayı olarak veya dize karşılıkları olarak verilebilir. Ayrıntılar için MESAJ GÖNDERME bölümündeki dize değerleri tablosuna bakın. Yukarıdaki örnek sorgu şu komutla da belirtilebilir:

syslog -k Sender portmap -o -k Level Nle warning

Zaman damgalarını eşleştirmek için özel bir kural mevcuttur. İşaretsiz bir tam sayı değeri, 1 Ocak 1970 00:00:00 Eşgüdümlü Evrensel Zaman'dan (UTC) itibaren geçen saniye sayısı olarak kabul edilir. Negatif bir tam sayı değeri, geçerli zamandan önceki saniye sayısı olarak kabul edilir. Örneğin, son 30 saniye içinde kaydedilen ve Error öncelik seviyesi (3) veya daha az olan tüm mesajları bulmak için:

syslog -k Level Nle error -k Time ge -30

göreli bir zaman değerini isteğe bağlı olarak sırasıyla saniye, dakika, saat, gün veya haftayı belirtmek için “s”, “m”, “h”, “d” veya “w” karakterlerinden biri takip edebilir. Büyük harfler de aynı şekilde kullanılabilir. Bir hafta, tam 7 gün (yani 604800 saniye) olarak kabul edilir.

FİLTRELEME KONTROLLERİ

asl(3) veya syslog(3) arayüzlerinden birini kullanan Apple System Log istemcileri, bir günlük filtre maskesi belirtebilir. Maske, her bir öncelik seviyesi için bir evet/hayır ayarı belirterek hangi mesajların syslogd arka plan programına gönderilmesi gerektiğini belirtir. Birçok istemci, nispeten önemsiz mesajların gönderilmesini önlemek için bir filtre maskesi ayarlar. Debug veya Info öncelik seviyesindeki mesajlar genellikle yalnızca hata ayıklama işlemleri için yararlıdır. Bir süreç, filtre maskesi ayarlayarak çoğu durumda gereksiz olan mesajları göndermekle zaman kaybetmekten kaçınabilir ve performansı artırabilir.

-c seçeneği filtrelemeyi kontrol etmek için kullanılabilir. Süreçlerin yukarıda açıkladığı gibi ayarlayabileceği dahili filtre maskesi değerine ek olarak sistem, küresel bir “ana (master)” filtre maskesi tutar. Bu filtre normalde “off” (kapalı) konumundadır, yani herhangi bir etkisi yoktur. Eğer ana filtre maskesi için bir değer ayarlanırsa, bu değer tüm süreçler için yerel filtre maskesini geçersiz kılar. Ana filtre maskesi değerini ayarlamak için root kullanıcısı erişimi gereklidir.

Ana filtre maskesinin mevcut ayarı şu komutla incelenebilir:

syslog -c 0

Ana filtre maskesinin değeri, -c 0 ifadesini takip eden ikinci bir argüman sağlanarak ayarlanabilir. Değer, “pacewnid” kümesinden bir karakter kümesi olabilir. Bunlar; Emergency (Panic), Alert, Critical, Error, Warning, Notice, Info ve Debug öncelik seviyelerine karşılık gelir. “x” karakteri, mesaj gönderirken kullanıldığı gibi Error için de kullanılabilir. Ana filtre maskesi şu komutla devre dışı bırakılabilir:

syslog -c 0 off

Filtre maskesini bir “kesme (cutoff)” mekanizması olarak kullanmak (örneğin Debug ve Info öncelikli mesajları kesmek için) yaygın olduğundan, yukarıdaki listeden önüne bir eksi işareti getirilmiş tek bir karakter belirtilebilir. Bu durumda syslog, seviye 0'dan (Emergency) başlayıp belirtilen seviyeye “kadar” olan bir filtre maskesi kullanır. Örneğin, tüm süreçlerin Emergency'den Debug'a kadar olan mesajları kaydetmesini sağlamak üzere ana filtre maskesini ayarlamak için:

syslog -c 0 -d

Tüm süreçler tarafından üretilen mesajları kontrol etmek için ana filtre maskesi ayarlanabilirken, bireysel bir süreç için de başka bir filtre maskesi belirtilebilir. Süreç başına (per-process) bir filtre maskesi ayarlanırsa, bu hem yerel filtre maskesini hem de ana filtre maskesini geçersiz kılar. Süreç başına filtre maskesinin mevcut ayarı, -c process kullanılarak incelenebilir; burada process ya bir PID ya da bir sürecin adıdır. Eğer bir ad kullanılırsa, bu ad bir süreci benzersiz bir şekilde tanımlamalıdır. Süreç başına filtre maskesi ayarlamak için, yukarıda ana filtre maskesi için açıklandığı gibi -c process ifadesini takip eden ikinci bir argüman sağlanabilir. Sistem (UID 0) süreçleri için süreç başına filtre maskesini ayarlamak için root erişimi gereklidir.

syslogd sunucusu, /etc/asl.conf dosyasında belirtilen filtreleme kurallarını takip eder. Bir sürecin filtresini değiştirmek için uzaktan kontrol (remote-control) mekanizması kullanıldığında, syslogd uzaktan kontrol filtresi kapatılana kadar o süreçten alınan tüm mesajları kaydedecektir.

SUNUCU YAPILANDIRMASI

syslogd başlatıldığında ve bir HUP sinyali aldığında, yapılandırma ayarlarını /etc/asl.conf dosyasından yeniden okur. Yapılandırma dosyasında değişiklik yapmaya gerek kalmadan, yapılandırma parametrelerini geçici olarak değiştirmek bazen yararlıdır. Dosyada (bir ='' karakterini takip ederek) ayarlanabilen yapılandırma seçeneklerinin herhangi biri, -config bayrağı kullanılarak (bir ='' karakteri olmadan) syslogd'ye de gönderilebilir. Örneğin, çekirdek (kernel) saniye başına mesaj limitini geçici olarak devre dışı bırakmak için:

syslog -config mps_limit 0

Yalnızca süper kullanıcının (root) yapılandırma parametrelerini değiştirebileceğini unutmayın.

asl.conf(5) kılavuz sayfasında açıklanan parametre ayarlama seçeneklerine ek olarak, ek bir seçenek:

syslog -config reset

syslogd'nin yapılandırmasını sıfırlamasına neden olacaktır.

ASL ÇIKTI MODÜLLERİ

ASL Çıktı Modülleri (ASL Output Modules), ASL sunucusu syslogd ve ASL dosya sistemi yöneticisi aslmanager tarafından kullanılan adlandırılmış yapılandırma paketleridir. /etc/asl.conf dosyası sistemin birincil çıktı modülünü temsil eder ve buna “com.apple.asl” adı verilir. Diğer modüller /etc/asl dizinindeki dosyalardan okunur. Dosya adları modül adları olarak hizmet eder. ASL Çıktı Modülleri, asl.conf(5) içinde ayrıntılı olarak açıklanmıştır.

-module ile çalıştırıldığında syslog, yüklü tüm ASL Çıktı Modüllerinin bir özetini yazdırır. Özet; her bir modül tarafından kullanılan çıktı dosyalarını ve ASL depo dizinlerini, modülün yapılandırma kurallarının bir listesini ve modülün mevcut etkinleştirilmiş veya devre dışı bırakılmış durumunu içerir. -module name, verilen ada sahip modül için bir özet yazdırır.

ASL Çıktı Modülleri şu komut kullanılarak etkinleştirilebilir veya devre dışı bırakılabilir:

syslog -module name enable [0]

Yalnızca süper kullanıcının (root) bir modülü etkinleştirebileceğini veya devre dışı bırakabileceğini unutmayın.

'*' adı (tek tırnak karakterleri dahil), birincil com.apple.asl modülü hariç tüm ASL Çıktı Modüllerinin durumunu değiştirmek için kullanılabilir. com.apple.asl etkinleştirilebilir veya devre dışı bırakılabilir, ancak yalnızca açıkça adıyla belirtilerek yapılabilir.

Eğer bir modül döndürülen (rotated) dosyalar içeriyorsa, şu komut:

syslog -module name checkpoint [file]

Modülü, döndürülen tüm dosyalarını veya yalnızca isteğe bağlı olarak adlandırılan tek bir dosyayı kontrol noktasına kaydetmeye (checkpoint) zorlayacaktır. '*' adı (tek tırnak karakterleri dahil), birincil com.apple.asl modülü dahil olmak üzere tüm ASL Çıktı Modülleri için döndürülen tüm dosyaların kontrol noktasına kaydedilmesini zorlamak için kullanılabilir.

Yalnızca süper kullanıcının (root) dosyaları kontrol noktasına kaydedilmeye zorlayabileceğini unutmayın.

Checkpoint işlemi syslogd'ye bir komut gönderir ve bir yanıtın dönmesini bekler. Bu, şu anda kullanımda olan tüm dosyaların, syslog komutu tamamlandığında kontrol noktasına kaydedileceği anlamına gelir.

Ayrıca Bakınız

log(1), logger(1), asl(3), syslog(3), asl.conf(5), syslogd(8)

Tarihçe

syslog aracı ilk olarak Mac OS X 10.4 sürümünde yer almıştır.