Uçbirim çıktılarıyla sorun tespit etme

Başlatan zeitgeist, 23 Aralık 2011 - 10:16:31

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

zeitgeist

Nedir bu uçbirim diyorsanız sizi şöyle alalım.

Sisteminizde karşılaştığınız yazılımsal sorunların pek çoğu büyük olasılıkla forumda birçok kez konuşulmuştur. Sorun hakkında bilgilenmek için en pratik yol uçbirim çıktısıyla forumda arama yapmaktır. Eğer forumdan edindiğiniz bilgilerle de meseleyi çözemiyorsanız meseleyi ilgilendiren uçbirim çıktılarıyla yeni bir konu açabilirsiniz.

Örneğin:

1-Güncelleme sırasında hata alıyorum:

Uçbirimden

sudo apt-get update

komutunu verdikten sonra çıktılara bakar ve herhangi bir hata olup olmadığını incelersiniz. Şöyle bir çıktı aldığınızı düşünürsek:

N: Ignoring file 'libreoffice-ppa-maverick.list.save' in directory '/etc/apt/sources.list.d/' as it has an invalid filename extension
N: Ignoring file 'google-chrome.list.save' in directory '/etc/apt/sources.list.d/' as it has an invalid filename extension
N: Ignoring file 'jd-team-jdownloader-maverick.list.save' in directory '/etc/apt/sources.list.d/' as it has an invalid filename extension
W: cdrom://Ubuntu 10.10 _Maverick Meerkat_ - Release i386 (20101007)/dists/maverick/main/binary-i386/Packages.gz Lütfen apt-cdrom kullanarak bu CD-ROM'u APT tarafından tanınır hale getirin. apt-get update yeni CD-ROM eklemek için kullanılamaz getirilmesi başarısız oldu

W: cdrom://Ubuntu 10.10 _Maverick Meerkat_ - Release i386 (20101007)/dists/maverick/restricted/binary-i386/Packages.gz Lütfen apt-cdrom kullanarak bu CD-ROM'u APT tarafından tanınır hale getirin. apt-get update yeni CD-ROM eklemek için kullanılamaz getirilmesi başarısız oldu

E: Bazı indeks dosyaları indirilemedi, dosyalar gözardı edildi veya eski dosyalar kullanıldı.
E: /var/lib/dpkg/lock kilit alınamadı - open (11: Özkaynak geçici olarak kullanılamaz durumda)
E: (/var/lib/dpkg/) yönetim dizinini kilitlenemiyor, başka bir işlem tarafından kullanılıyor olmasın?


E: /var/lib/dpkg/lock şeklinde forumda arama yapmak istediğiniz bilgiye ulaşmanızı sağlayacaktır.

2-Synaptic çalışmıyor, Smplayer veya falanca uygulama açılmıyor:

Uçbirimden çalıştırmak istediğiniz uygulamanın adını yazın. Herhangi bir hata görürseniz o hata satırıyla forumda arama yapın. Örneğin Synaptic açılmıyorsa:

Uçbirimde şu komutu veririz:

synaptic

Çıktıda şöyle bir hata varsa:

E: dpkg was interrupted, you must manually run 'dpkg --configure -a' to correct the problem.
E: _cache->open() failed, please report.

Forumda dpkg --configure -a olarak aratabiliriz.
Özgürlüğü ne kadar anlarsan o kadar az sahip olursun. John Fowles

travego0403

Bu başlık var ya bu başlık ilerleyen zamanlarda çok yararlı bir kaynağa dönüşecektir eğer genişletilirse. Çünkü Linuxta en önemli şeylerden biriside konsol çıktısından hatayı anlayabilmek ve buna çözüm üretebilmektir. Yoksa bilgisayar takıldığında Hata Kodu: 000x12F  şeklindeki bir hata raporuyla sistem yönetilip çalıştırılamaz.

Yabancı kaynakları açıp incelemedim ama Türkçe Linux belgelerinde de bu hata raporu okuma gibi konulara da yer verilse tadından yenmez. :)
"Matematik bir dildir ve bu dilde şairlere fizikçi denir." Richard Feynman

zeitgeist

@travego0403,

Haklısın, biraz daha zenginleştirmek gerek bu konuyu. Zaman içinde umuyorum ki eklemeler olacaktır.
Özgürlüğü ne kadar anlarsan o kadar az sahip olursun. John Fowles

burk

@zeitgeist tebrikler, harika bir fikir, kesinlikle desteklenmesi gereken bir başlık olmuş. Uçbirimde hatalarla karşılaştıkça bunları burada çözüm önerileriyle geçmeye çalışacağım.

brooqs

Bende biraz ekleme yapayım başka bir yerde anlatılmışsa silinebilir kusura bakmayın.

Uçbirim çıktılarının yoğun ve karmaşık olduğu durumlarda daha sade bilgiler almak için "grep" parametresinide kullanabiliriz. özellikle syslog en büyük yardımcılarımızdan birisi olacaktır. syslog sistem içerisindeki nerdeyse tüm hata ve olayları göstermektedir. Bize kalan bu logların içerisinden ihtiyacımız olanı göstermektir.

Örnek olarak anlık syslog akışını canlı olarak incelemek için aşağıdaki komutu kullanabiliriz.

tail -f /var/log/syslog

Yukarıdaki kodu yazdığınızda kullandığınız sisteme göre değişiklik gösteren ama yapı olarak aşağıdakilere benzeyen bir çıktı gösterecektir.

Feb 17 13:09:01 webserver CRON[4029]: (root) CMD (  [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -depth -mindepth 1 -maxdepth 1 -type f -cmin +$(/usr/lib/php5/maxlifetime) -delete)
Feb 17 13:09:01 webserver CRON[4027]: (CRON) info (No MTA installed, discarding output)
Feb 17 13:17:01 webserver CRON[4052]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Feb 17 13:39:01 webserver CRON[4103]: (root) CMD (  [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -depth -mindepth 1 -maxdepth 1 -type f -cmin +$(/usr/lib/php5/maxlifetime) -delete)
Feb 17 13:39:01 webserver CRON[4101]: (CRON) info (No MTA installed, discarding output)
Feb 17 14:09:01 webserver CRON[4261]: (root) CMD (  [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -depth -mindepth 1 -maxdepth 1 -type f -cmin +$(/usr/lib/php5/maxlifetime) -delete)
Feb 17 14:09:01 webserver CRON[4260]: (CRON) info (No MTA installed, discarding output)
Feb 17 14:17:01 webserver CRON[4290]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Feb 17 14:39:01 webserver CRON[4295]: (root) CMD (  [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -depth -mindepth 1 -maxdepth 1 -type f -cmin +$(/usr/lib/php5/maxlifetime) -delete)
Feb 17 14:39:01 webserver CRON[4293]: (CRON) info (No MTA installed, discarding output)


yukarıdaki veriler benim websunucumda anlık olarak syslog tarafından oluşturulmuş loglardır. Yukarda canlı olarak izlemek demiştim birde syslog un oluşturduğu log dosyasından istediğim satır sayısı kadar logda görüntüleyebilirim bunun için aşağıdaki kodu kullanabilirim.

tail -n 1000 /var/log/syslog

yukarıdaki komutu yazdığınızda syslog tarafından oluşturulmuş son 1000 satır log görüntülenecektir.

Mesela sunucunuzun 17 şubat tarihinde saat 14 te yavaşladığını yada çalışmadığını varsayalım ve bu saatlerde neler olmuş syslog nasıl loglar kaydetmiş grep parametresi ile kontrol edelim.

tail -n 1000 /var/log/syslog


Feb 17 13:09:01 webserver CRON[4027]: (CRON) info (No MTA installed, discarding output)
Feb 17 13:17:01 webserver CRON[4052]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Feb 17 13:39:01 webserver CRON[4103]: (root) CMD (  [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -depth -mindepth 1 -maxdepth 1 -type f -cmin +$(/usr/lib/php5/maxlifetime) -delete)
Feb 17 13:39:01 webserver CRON[4101]: (CRON) info (No MTA installed, discarding output)
Feb 17 14:09:01 webserver CRON[4261]: (root) CMD (  [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -depth -mindepth 1 -maxdepth 1 -type f -cmin +$(/usr/lib/php5/maxlifetime) -delete)
Feb 17 14:09:01 webserver CRON[4260]: (CRON) info (No MTA installed, discarding output)
Feb 17 14:17:01 webserver CRON[4290]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Feb 17 14:39:01 webserver CRON[4295]: (root) CMD (  [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -depth -mindepth 1 -maxdepth 1 -type f -cmin +$(/usr/lib/php5/maxlifetime) -delete)
Feb 17 14:39:01 webserver CRON[4293]: (CRON) info (No MTA installed, discarding output)


Yukarıdaki komutu yadığımda syslog tarafından kaydedilmiş logların içerisinden son 1000 tanesini ekrana basacaktır. Ancak bu durumda tüm zamanlar olacağından ihtiuyacımız olan saat 14 te olan olaylara ulaşmamız çok zor olacaktır.

tail -n 1000 /var/log/syslog |grep "Feb 17 14"

[b]Feb 17 14[/b]:09:01 webserver CRON[4261]: (root) CMD (  [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -depth -mindepth 1 -maxdepth 1 -type f -cmin +$(/usr/lib/php5/maxlifetime) -delete)
[b]Feb 17 14[/b]:09:01 webserver CRON[4260]: (CRON) info (No MTA installed, discarding output)
[b]Feb 17 14[/b]:17:01 webserver CRON[4290]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
[b]Feb 17 14[/b]:39:01 webserver CRON[4295]: (root) CMD (  [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -depth -mindepth 1 -maxdepth 1 -type f -cmin +$(/usr/lib/php5/maxlifetime) -delete)
[b]Feb 17 14[/b]:39:01 webserver CRON[4293]: (CRON) info (No MTA installed, discarding output)


Yukarıdaki kodu yazdığımızda syslog tarafından saklanmış loglar arasından başlangıcında Feb(şubat kelimesinin kısaltılması) 17 14 yazan satırları ayırdı diğerlerini ise bizlere göstermedi.

Bu şekilde problem olan saatlerde neler olmuş daha hızlı öğrenebiliriz.

Umarım faydalı olur herkese iyi günler.
Linux is an adventure!!!

zeitgeist

Özgürlüğü ne kadar anlarsan o kadar az sahip olursun. John Fowles

burk

@brooqs teşekkürler güzel bir yazı olmuş. :)

brooqs

rica ederim bir yardımı olursa ne mutlu bana :)
Linux is an adventure!!!

brooqs

Bunlara ek olarak birde cat ve zcat var cat komutu var tail ile şu anki veya henüz arşivlenmemiş halindeki günlük dosyalarını izleyebiliyoruz. Ancak syslog gibi günlük üreten yazılımlar belirli bir noktaya geldikten sonra .gz olarak sıkıştırılıp arşivlenir. Normal şartlarda .gz olarak sıkıştırılmış bir dosyayı ayıklamak kaydıyla tekrar okunabilir bir hale getirip inceleme şansımız var ancak bu pratik bir yöntem değil bunun yerine normalde uçbirimde kullandığımız

cat dosya

komutu yerine

zcat dosya

şeklinde kullanarak gz olarak sıkıştırılmış dosyaların içerisini ayıklamaya gerek kalmadan görebilmemizi sağlar.

cat /var/log/syslog.1.gz

yukarıdaki kod syslog un arşivlenmiş bir halinin içeriğini okumamızı sağlar.

zcat /var/log/syslog.1.gz | grep "DHCP"

yukarıdaki kod ise syslog tarafından oluşturulan log satırları içinde DHCP kelimesinin olduğu satırları listeler.
Linux is an adventure!!!

kuzgun_

Ben anlamadım desem cok mu ayıp etmiş olurum :/
- uçbirimden tamam cıkıtıyı alıyoruz
* bunun aramasını nerede - nasıl yapacağız ??

(vay arkadaş windows'ta millete bilgiçlik taslayan ben, burada sorduğumuz sorulara bak  :-[)
BSD >> Bilmediğin Sulara Dalmıcan!!

if

@kuzgun_, aramayı ya forumumuzun sağ üst köşesindeki arama kutusunda ya da herhangi bir arama motorunda yapacaksınız.

Mkturk

uçbirim çıktıları çok uzun olduğu zaman sadece son bölüm görüntülenebiliyor , önceki listeyi görüntüleyebilmek için ne yapmak lazım.
Sevgili dost ta !  ( dos)  dir /p  gibi bir komut vardı , çıktıyı sayfa sayfa listelerdi entere basıp diğer sayfaya geçerdiniz. wiki miki bakmadığım yer kalmadı bulamadım ,
linuxda böyle bir komut veya ls de böyle bir parametre var mı ?

if

Uçbirim > Düzenle > Profil tercihleri > Kaydırma > Sınırsız

komut | less ya da komut | more

Mkturk

@if , çok teşekkür ederim sağ olunuz.

heartsmagic

Seçenek sunalım:
komut > dosya_adı
Çıktı dosya_adı'na aktarılır, açıp bakabilirsin.

Kabukların yanında DOS olsa olsa emekleyen bebek olabilir :)
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

aysberg313

Alıntı yapılan: if - 07 Şubat 2014 - 12:56:06
Uçbirim > Düzenle > Profil tercihleri > Kaydırma > Sınırsız

Sistemi gui ile kullanırken benim tercihim de bu ancak hem ağ konusunda ilerlemek hem de uçbirime daha fazla hakim olabilmek için Ubuntu Server'ı kullanıcı arayüzü olmadan yükledim ama uçbirim çıktılarını sınırsız yapamadım. İlgili dosyalara bakındım ya yanlış dosyalara baktım ya da gözümden kaçtı. Bir komut var mıdır yada hangi dosyadan alır bu özelleştirmeyi acaba?
Sevmezdim kabuklu yemiş, Linux çekirdeği tadıncaya dek !..

furkankalkan

TTY de bildiğim kadarıyla öyle bir özellik yok fakat less ya da herhangi bir metin editörünü kullanabilirsiniz. PgUp ve PgDown tuşları işe yarayabilir.
Lover
twitter.com/furkan_kalkan1

aysberg313

Alıntı yapılan: dewilman - 29 Ağustos 2014 - 09:36:16
TTY de bildiğim kadarıyla öyle bir özellik yok fakat less ya da herhangi bir metin editörünü kullanabilirsiniz. PgUp ve PgDown tuşları işe yarayabilir.

Shift+PgUp ile çıktıyı kaydırmada sıkıntı yok ama ilk satırları okuyamıyorum. more/less ikilisine de çok aşina olmadığım ve daha çok söz konusu ayara alıştığım için eksikliği hissediliyor. Neyse alışacağız artık :)
Sevmezdim kabuklu yemiş, Linux çekirdeği tadıncaya dek !..

if

@aysberg313, ya da tmux kullanıp ctrl+b+[ ya da ctrl+b+pageup tuşlarıyla hareket edersin. q tuşuna basınca çıkar.

aysberg313

@if, neredeyse pişti olacakmışız. tmux kullanmaya daha çok yeni başladım şu an sudo 32'den Türkçe anlatımını inceliyordum. tmux'ın kaydırma kısayollarına bakınıyordum, akıl mı okuyorsun balkon mu yapıyorsun :)

Kaydırma tamam ama grafik arayüzünde terminal kullanırken Uçbirim > Düzenle > Profil tercihleri > Kaydırma > Sınırsız ile yapılan sınırsız çıktı ayarını TTY'de yapmanın yolu var mı? Çıktıyı kaydırılabiliyor ama çıktının ilk satırları yok.
Sevmezdim kabuklu yemiş, Linux çekirdeği tadıncaya dek !..

if

:) Aklıma geldi söyledim öyle.

Alıntı YapHISTFILESIZE

    The maximum number of lines contained in the history file. When this variable is assigned a value, the history file is truncated, if necessary, by removing the oldest entries, to contain no more than that number of lines. The history file is also truncated to this size after writing it when an interactive shell exits. The default value is 500.
[1]

Alıntı YapHISTSIZE

    The maximum number of commands to remember on the history list. The default value is 500.
[2]

~/.bashrc içine

HISTSIZE=1000
HISTFILESIZE= 2000


yazıp kaydedersen daha fazla sonuç alacaksın.

tmux için: https://stackoverflow.com/questions/18760281/how-to-increase-scrollback-buffer-size-in-tmux

[1] https://www.gnu.org/software/bash/manual/bashref.html#Bash-Variables
[2] https://www.gnu.org/software/bash/manual/bashref.html#Bash-Variables

aysberg313

@if, olmadı malesef. Zaten .bashrc içindeki değerleri 9999 olarak ayarlamışım. (Kel ilacı bol bulunca...  ;D )

Olması gereken değerlerin dışına çıkmışımdır belki diye biraz düşürdüm 3000/4000 gibi ama yine işe yaramadı. Mesela Dmesg yürüttüğüm zaman neredeyse 5 de 1'i kadarını okuyabiliyorum. Daha yukarısı eksik kalıyor.  Şimdilik more/less ile çıktı alacağım ama Ubuntu gibi bir platformda bunun kesinlikle bir ayarı vardır.
Sevmezdim kabuklu yemiş, Linux çekirdeği tadıncaya dek !..

furkankalkan

Maalesef bir çözümü yok gibi duruyor tmux ve alternatifleri dışında, Çünkü TTYler ekrana tam otururlar ve bir defada sadece ekranın gösterebileceği kadar şey gösterebilirler. (Scrollbar denilen şey de olmadığı için :D) more, less ve nano gibi editörler bunun için daha kolay kullanıma sahiptir. Text'in geri kalanını hafızasında tutar ve siz ok tuşlarıyla (ya da PageUp PageDown) gezindikçe geri kalanı size gösterir. less den çıkmak için q tuşu kullanılıyordu sanırım. Nanoda ise ctrl + x.


Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 30 Ağustos 2014 - 12:13:05

Bu arada HISTFILE olayı da hafızada tutulan komut sayısını belirtiyor. (Hani şu ok tuşlarıyla çıkan komutlar)
Lover
twitter.com/furkan_kalkan1

aysberg313

@if, @dewilman, vakit ayırdığınız için teşekkürler. Her ikinizin de vermiş olduğunuz öneriler doğrultusunda şu an istediğim sonucu almış durumdayım. Aynı sıkıntıya (TTY ekranında listelenen çıktıdan fazlasını görüntülemeye) ileride çözüm arayabilecek arkadaşlara kısaca özetlemek gerekirse;

1. Tmux kullanın,
2. .tmux.conf dosyasının (kullanıcı ev dizininde veya /etc dizininde olmalı diyor bende yoktu kendiniz ev dizininize oluşturabilirsiz) içinde ki history-limit satırındaki xxxx değerine istediğiniz değeri verin. Dosya yoksa ve kendiniz oluşturacaksanız aşağıdaki satırı oluşturduğunuz dosyaya kopyalayıp yapıştırın. Ram'e fazla yüklenmemek için bu değeri artırırken biraz cimri olmak gerekebilir gibi bir uyarı okudum.

┌zifiri@zifiri:~$
└──>>> cat ~/.tmux.conf
set-option -g history-limit xxxx


3. Dosyaya çalıştırma yetkisi verin.
Sevmezdim kabuklu yemiş, Linux çekirdeği tadıncaya dek !..

Horoz

Çok çok çok teşekkür ediyooorum. Gerçekten aydınlatıcı.
Mamá ! Yo paso de todo ! :P