Skript för att underlätta felsökning

Få igång din maskinvara i Ubuntu
Kategoriregler
I detta forum diskuterar vi Ubunturelaterade hårdvarufrågor. För allmänna frågor om (fysisk) hårdvara se:
Hårdvara som Hårdvara
Användarvisningsbild
PsynoKhi0
Inlägg: 55
Blev medlem: 17 jun 2007, 02:14

Skript för att underlätta felsökning

Inlägg av PsynoKhi0 »

Hej,
Rätt så ofta är det samma grundläggande hänvisningar man ger till nya Ubuntuanvändare, inte minst i IRC-kanalen.
Därför undrade jag om ett sånt skript skulle hjälpa att göra hela processen smidigare:

Kod: Markera allt

#!/bin/bash
# Simple script to gather relevant information when troubleshooting Ubuntu
# Copy/paste the script in an empty text file and save it as
#	logscript
# Make it executable with the following command (in a terminal) from the
# folder you saved it to
#	chmod +x logscript
#
# After running the script with ./logscript from the relevant folder,
# the resulting text file should be in the Log folder in your home directory.
FILENAME=`date +%Y%m%d-%H%M%S`

# Copy/paste the content to http://pastebin.ubuntu.com/ and refer people to the
# resulting URL.
#
# Step 1: check for a Log folder in $HOME and create it if missing
mkdir -p ~/Log

# Step 2: copy the content of xorg.conf into a log file (arranged by date)
echo "--- xorg.conf ---" > ~/Log/$FILENAME.log
cat /etc/X11/xorg.conf >> ~/Log/$FILENAME.log

# Step 3: add dmesg
echo "--- dmesg ---" >> ~/Log/$FILENAME.log
cat /var/log/dmesg >> ~/Log/$FILENAME.log

# Step 4: add warning messages from Xorg.0.log
echo "--- Warnings from Xorg.0.log ---" >> ~/Log/$FILENAME.log
grep WW /var/log/Xorg.0.log >> ~/Log/$FILENAME.log

# Step 5: add error messages from Xorg.0.log
echo "--- Errors from Xorg.0.log ---" >> ~/Log/$FILENAME.log
grep EE /var/log/Xorg.0.log >> ~/Log/$FILENAME.log

# Done!
echo "--- End of file ---" >> ~/Log/$FILENAME.log
echo "Check for the log file with date and time of execution (yyyymmdd-hhmmss)."
echo "Paste its content to http://pastebin.ubuntu.com/"
Visst kan man nog " fixa så s[..]en laddas upp på pastebin automatiskt också :)" för att plagiera någons visdomsord på IRC ;D men vad sägs så här långt?
Användarvisningsbild
dmz
Inlägg: 3292
Blev medlem: 29 jul 2008, 19:42
OS: Arch Linux

Re: Skript för att underlätta felsökning

Inlägg av dmz »

PsynoKhi0 skrev:Hej,
Rätt så ofta är det samma grundläggande hänvisningar man ger till nya Ubuntuanvändare, inte minst i IRC-kanalen.
Därför undrade jag om ett sånt skript skulle hjälpa att göra hela processen smidigare:

Kod: Markera allt

#!/bin/bash
# Simple script to gather relevant information when troubleshooting Ubuntu
# Copy/paste the script in an empty text file and save it as
#	logscript
# Make it executable with the following command (in a terminal) from the
# folder you saved it to
#	chmod +x logscript
#
# After running the script with ./logscript from the relevant folder,
# the resulting text file should be in the Log folder in your home directory.
FILENAME=`date +%Y%m%d-%H%M%S`

# Copy/paste the content to http://pastebin.ubuntu.com/ and refer people to the
# resulting URL.
#
# Step 1: check for a Log folder in $HOME and create it if missing
mkdir -p ~/Log

# Step 2: copy the content of xorg.conf into a log file (arranged by date)
echo "--- xorg.conf ---" > ~/Log/$FILENAME.log
cat /etc/X11/xorg.conf >> ~/Log/$FILENAME.log

# Step 3: add dmesg
echo "--- dmesg ---" >> ~/Log/$FILENAME.log
cat /var/log/dmesg >> ~/Log/$FILENAME.log

# Step 4: add warning messages from Xorg.0.log
echo "--- Warnings from Xorg.0.log ---" >> ~/Log/$FILENAME.log
grep WW /var/log/Xorg.0.log >> ~/Log/$FILENAME.log

# Step 5: add error messages from Xorg.0.log
echo "--- Errors from Xorg.0.log ---" >> ~/Log/$FILENAME.log
grep EE /var/log/Xorg.0.log >> ~/Log/$FILENAME.log

# Done!
echo "--- End of file ---" >> ~/Log/$FILENAME.log
echo "Check for the log file with date and time of execution (yyyymmdd-hhmmss)."
echo "Paste its content to http://pastebin.ubuntu.com/"
Visst kan man nog " fixa så s[..]en laddas upp på pastebin automatiskt också :)" för att plagiera någons visdomsord på IRC ;D men vad sägs så här långt?
För att ladda upp filen automatiskt kan du använder curl och lynx.
Har haft detta förslag uppe på tapeten förut, men blev tyvärr kraftigt nedröstad.
ǁ A: Because it obfuscates the reading.
ǁ Q: Why is top posting so bad?
Användarvisningsbild
PsynoKhi0
Inlägg: 55
Blev medlem: 17 jun 2007, 02:14

Re: Skript för att underlätta felsökning

Inlägg av PsynoKhi0 »

Uh vad blev anledningen?
David Andersson
Inlägg: 1269
Blev medlem: 15 dec 2007, 03:20
OS: Xubuntu

Re: Skript för att underlätta felsökning

Inlägg av David Andersson »

Jag tänker så här.

1) Det finns så mycket att proba, man missar alltid nåt. Exempel: Förslaget i första inlägget filterarar bort rader ur Xorg.0.log och kvarvarande rader har oklar ordning. Det kommer att finnas fel där ordningen är viktig för diagnostik, eller mer än bara error och warningar behövs. Exempel: ~/.xsession-error är inte med. Vi kan fixa dessa men sen finns det nåt mer. Crontab -l? Både för root och user? Grub/menu.list? Okej, kopiera dem med, men det finns alltid nåt mer. Hur stora hårddiskar, filsystemtyp? ISP? Installerade paket? Versioner? Mäta ur lång tid det tar att starta ett visst program?

2) När man diagnostiserar på plats så använder man less, grep, lshw och en massa andra terminalkommandon. Efter varje kommando får man lite mer info om felet, som avgör vad man ska kolla härnäst. Anta att output från scriptet faktiskt innehåller allt, som en enda lång textfil eller en zip, då är det inte samma kommandon för att hitta informationen i den som det är på plats. Det blir ovant och obekvämt och kanske onödiga fel. För att göra det bekvämt skulle behövas ett annat script/program på mottagarsidan som kan proba den sparade informationen med de kommandon man är van vid. Ett off-site-program som emulerar on-site-kommandon.

3) Eftersom output ofta kommer att vara otillräcklig och off-site-program inte finns inom överskådlig tid så kommer felsökning att ske med en kombination av att söka i output och mejla till den med problemet att utföra klassiska kommandon för felsökning.

4) Om man kan förutse alla oförutsedda problem så kan man låta scriptet fixa problemen, inte bara samla information. Det är orimligt, men om ambitionen är att ta hand om de vanligaste så kan scriptet faktiskt också fixa felen. Men en sån inställning skiljer sig inte så mycket från att rapportera ett fel, som snart blir en patch eller felrättning om det är ett vanligt fel. En signifikant andel av felen kommer alltid att vara oförutsebara.
Användarvisningsbild
Mekaniserad Apelsin
Hedersmedlem
Inlägg: 3777
Blev medlem: 27 maj 2006, 12:24
OS: Ubuntu
Ort: Stockholm
Kontakt:

Re: Skript för att underlätta felsökning

Inlägg av Mekaniserad Apelsin »

dmz skrev: Har haft detta förslag uppe på tapeten förut, men blev tyvärr kraftigt nedröstad.
Jag har för mig att upnorth oxå satte igång med en sådan...
More Mekaniserad at http://blippe.se.
Användarvisningsbild
PsynoKhi0
Inlägg: 55
Blev medlem: 17 jun 2007, 02:14

Re: Skript för att underlätta felsökning

Inlägg av PsynoKhi0 »

David Andersson skrev:Jag tänker så här. [...]
Ok jag förstår. Mitt största misstag är dock att skriptet är alldeles för specifikt gentemot trådens titel, eftersom jag huvudsakligen hade konfigurationen av grafikkort i tanken (ofta förekommande fråga från nybörjare).
Det med ordningen i Xorg.0.log visste jag inte om heller.
Nähä... The little grasshopper isn't ready to snatch the floppy from Master's hand.
David Andersson
Inlägg: 1269
Blev medlem: 15 dec 2007, 03:20
OS: Xubuntu

Re: Skript för att underlätta felsökning

Inlägg av David Andersson »

PsynoKhi0 skrev: huvudsakligen hade konfigurationen av grafikkort i tanken (ofta förekommande fråga från nybörjare).
Olika script för olika slags problem kanske?

Med varje release av operativsystemet så kommer nya problem, och gamla problem är fixade. Scripten behöver underhållas. En bit på vägen till ett underhållsfritt script (för alla problem!) kunde vara ett script som postar stdin på pastebin.com. Det skulle kunna användas tillsammans med "klassiska" kommandon. Exempel lshw | pastebinit och pastepinit /var/log/dmesg. Även nåt enkelt sätt att få output direkt till forumet. Tillsammans med pastebinit för att posta url:en. Exempel lshw | ubuntusepost för att posta hårdvaran här eller lshw | pastebinit | ubuntusepost för att posta hårdvaran i pastepin och pastebins url här. Oooh, pipe på pipe, det ser så unixmässigt snyggt ut. Blir nästan lyrisk. ^^

Åter till ämnet. Om scripten är kod-sektioner i wikin, och inte separata filer, så är de lättare att underhålla när systemet ändras och lätt att lägga till nya när nya problem uppstår. Användarna får kopiera och klistra kommandorader till sin terminal.

Nåt sånt kanske: klipp o klistra "debug-scripts" i wikin?
Skriv svar

Återgå till "Hårdvara och drivrutiner"