gDebug

gDebug - skript, který za vás vyhledá informace při problémech se zvukem, flashem a instalačními programy - Synaptic, Centrum softwaru pro Ubuntu, Automatická aktualizace apod.

Stručně

Skript se spouští přes gksudo, a výsledný soubor výsledky.txt se zkopíruje do fóra.

Přesnější popis

Níže uvedený skript zkopírujte, uložte a spusťte podle návodu na Jak dodat informace do fóra.

Vyberte problémovou oblast dle své situace.

Nechte skript pracovat.

Nakonec skript vytvoří soubor výsledky.txt s uloženými výpisy. Buď si ho otevřete sami, nebo vám gDebug nabídne, že ho otevře za vás.

#! /bin/bash
# angličtina je lepší
# protože výstupy jsou pak dohledatelnější
LANG=en_US.UTF-8

# co je možné debugovat
# pokud se něco doplní sem, je třeba pak doplnit i příkazy do case níže
# ZM je seznam potřebný do zenity
moznosti=( zvuk flash instalace )

for i in $(seq 0 $((${#moznosti[@]} - 1))); do
	ZM="$ZM FALSE ${moznosti[$i]}"
done

# nechat vybrat
while :; do
	CoDebugovat="`zenity --title 'gDebug' --list --radiolist --text 'Problém s čím?' --column 'Vyber jednu' --column 'oblast' $ZM`"
		# zmáčkl cancel?
		[[ $? -eq 1 ]] && exit 1
		# zadal něco?
		[[ -n $CoDebugovat ]] && break
		zenity --error --text "Vyber jednu problémovou oblast!"
done

# zde je možné doplňovat příkazy pro jednotlivé oblasti
# příkaz je potřeba zadat tak, aby jeho provádění netrvalo
# déle než cca 45 sekund (viz $CasLimitPrikaz)
case $CoDebugovat in
	zvuk)
		prikazy=( "aplay -l" "grep Codec /proc/asound/card0/codec#*"
		"lspci -v | awk '/Audio/,/Kernel\ modules/'" "lsof /dev/dsp* /dev/snd/*"
		"amixer info" "amixer scontents | grep -E 'mixer|\['" "uname -a"
		"df -Th" "cat /etc/lsb-release" )
		;;
	flash)
		prikazy=( "dpkg -l | egrep 'flash|swfdec|gnash'"
		"ls -al /home/*/.macromedia"  "find /usr -name libflashplayer.so -ls"
		"uname -a" "df -Th" "cat /etc/lsb-release" )
		;;
	instalace)
		prikazy=( "dpkg --configure -a" "dpkg -l | grep -Ev '^ii|^rc'"
		"tail -20 /var/log/dpkg.log"
		"find /etc/apt -type f -name '*.list' -exec grep -H '^deb ' '{}' \;"
		"ls -l /var/backups/{apt,dpkg}*"
		"ls -l /var/lib/dpkg" "lsof /var/lib/dpkg/*"
		"df -Th" "cat /etc/lsb-release" )
		;;
	*)
		# TODO: něco ukecanějšího by nebylo?
		exit 1
esac

TempSoubor=`mktemp`
# jak dlouho dát max. čas pro provedení příkazu
# nesmí být moc, uživatel je netrpělivý
# sekundy = asi CasLimitPrikaz/5
CasLimitPrikaz=250

# adresář, z kterého spouštíme skript
AktAdresar=$(cd $(dirname "$0");pwd)
# existuje AktAdresar?
# pokud ne, předpokládej $HOME nebo /tmp
[[ -z $AktAdresar ]] && AktAdresar="$HOME"
[[ -z $AktAdresar ]] && AktAdresar=/tmp

PocetPrikazu=$((${#prikazy[@]}))

exec 3> >(zenity --progress --title="gDebug" --percentage=0 --auto-close --width=300 || echo cancel > $TempSoubor)
# výstup do souboru výsledky.txt
exec &> "${AktAdresar}/výsledky.txt"

for (( i=0; i<$PocetPrikazu; i++ )); do
	prikaz=${prikazy[$i]}
	echo "# $(($i + 1))/${PocetPrikazu} - ${prikaz}" >&3
	echo
	echo $prikaz
	echo ---------------------------
	eval "${prikaz} &"
	ChildPID=$!

	# příkaz se spouští na pozadí
	# když uživatel klikne Cancel, nebo se příkaz provádí dlouho
	# je nemilosrdně zabit
	for ((j=0;j<=$CasLimitPrikaz;j++)); do
		kill -0 $ChildPID &> /dev/null || break
		[[ -s $TempSoubor ]] && exit 1
		echo $(((($i * $CasLimitPrikaz + $j) * 100) / ($PocetPrikazu * $CasLimitPrikaz))) >&3
		sleep 0.2
	done
	kill -0 $ChildPID &> /dev/null && { echo "zabíjím $ChildPID - $prikaz"; kill $ChildPID; }
	echo $((($i + 1) * 100 / $PocetPrikazu)) >&3
done

if zenity --question --title="gDebug" --text="Hotovo.\n\nByl vytvořen soubor $AktAdresar/výsledky.txt.\n\nChceš ho rovnou otevřít?"; then
	editor="gnome-text-editor"
	which "$editor" &> /dev/null || editor=gedit
	$editor "$AktAdresar/výsledky.txt" &
fi

exit 0

Výstup skriptu při volbě flash:

dpkg --configure -a
---------------------------
dpkg: error processing adobe-flashplugin (--remove):
 Package is in a very bad inconsistent state - you should
 reinstall it before attempting a removal.
Errors were encountered while processing:
 adobe-flashplugin

dpkg -l | grep -Ev '^ii|^rc'
---------------------------
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                                  Version                                    Description
+++-=====================================-==========================================-============================================
rFR adobe-flashplugin                          10.0.22.87-1                            Adobe Flash Player plugin version 10

tail -20 /var/log/dpkg.log
---------------------------
2010-02-04 16:27:33 startup packages remove
2010-02-04 16:27:33 status installed libreadline5 5.2-6
2010-02-04 16:27:33 remove libreadline5 5.2-6 5.2-6
2010-02-04 16:27:33 status half-configured libreadline5 5.2-6
2010-02-04 16:27:33 status half-installed libreadline5 5.2-6
2010-02-04 16:27:33 status triggers-pending libc-bin 2.10.1-0ubuntu16
2010-02-04 16:27:33 status config-files libreadline5 5.2-6
2010-02-04 16:27:33 status config-files libreadline5 5.2-6
2010-02-04 16:27:33 trigproc libc-bin 2.10.1-0ubuntu16 2.10.1-0ubuntu16
2010-02-04 16:27:33 status half-configured libc-bin 2.10.1-0ubuntu16
2010-02-04 16:27:33 status installed libc-bin 2.10.1-0ubuntu16

find /etc/apt -type f -name '*.list' -exec grep '^deb ' '{}' \;
---------------------------
deb http://ppa.launchpad.net/jonoomph/openshot-edge/ubuntu karmic main
deb http://dl.google.com/linux/deb/ stable main
deb http://deb.opera.com/opera/ stable non-free
deb http://cz.archive.ubuntu.com/ubuntu/ karmic main restricted
deb http://cz.archive.ubuntu.com/ubuntu/ karmic-updates main restricted
deb http://cz.archive.ubuntu.com/ubuntu/ karmic universe
deb http://cz.archive.ubuntu.com/ubuntu/ karmic-updates universe
deb http://cz.archive.ubuntu.com/ubuntu/ karmic multiverse
deb http://cz.archive.ubuntu.com/ubuntu/ karmic-updates multiverse
deb http://security.ubuntu.com/ubuntu karmic-security main restricted
deb http://security.ubuntu.com/ubuntu karmic-security universe
deb http://security.ubuntu.com/ubuntu karmic-security multiverse
deb http://ppa.launchpad.net/xsisqox/ppa/ubuntu karmic main

ls -l /var/backups/{apt,dpkg}*
---------------------------
-rw-r--r-- 1 root root 2271643 2009-10-30 20:27 /var/backups/aptitude.pkgstates.0
-rw-r--r-- 1 root root 1254290 2010-02-01 00:37 /var/backups/dpkg.status.0
-rw-r--r-- 1 root root  346435 2010-01-30 23:57 /var/backups/dpkg.status.1.gz
-rw-r--r-- 1 root root  345971 2010-01-29 19:50 /var/backups/dpkg.status.2.gz
-rw-r--r-- 1 root root  345671 2010-01-28 21:53 /var/backups/dpkg.status.3.gz
-rw-r--r-- 1 root root  345458 2010-01-26 23:56 /var/backups/dpkg.status.4.gz
-rw-r--r-- 1 root root  345052 2010-01-25 20:32 /var/backups/dpkg.status.5.gz
-rw-r--r-- 1 root root  344752 2010-01-24 22:13 /var/backups/dpkg.status.6.gz

ls -l /var/lib/dpkg
---------------------------
total 5164
drwxr-xr-x 2 root root    4096 2010-02-02 10:58 alternatives
-rw-r--r-- 1 root root 1250240 2010-02-04 23:57 available
-rw-r--r-- 1 root root 1250240 2010-02-04 23:55 available-old
-rw-r--r-- 1 root root       8 2009-10-30 20:22 cmethopt
-rw-r--r-- 1 root root     338 2010-01-26 20:27 diversions
-rw-r--r-- 1 root root     186 2009-11-20 23:53 diversions-old
drwxr-xr-x 2 root root  225280 2010-02-04 16:27 info
-rw-r----- 1 root root       0 2010-02-04 23:57 lock
drwxr-xr-x 2 root root    4096 2009-09-20 10:23 parts
-rw-r--r-- 1 root root     112 2010-01-14 22:18 statoverride
-rw-r--r-- 1 root root     152 2010-01-14 22:18 statoverride-old
-rw-r--r-- 1 root root 1254290 2010-02-04 23:57 status
-rw-r--r-- 1 root root 1254290 2010-02-04 23:55 status-old
drwxr-xr-x 2 root root    4096 2010-02-04 16:27 triggers
drwxr-xr-x 2 root root    4096 2010-02-04 23:57 updates

lsof /var/lib/dpkg/alternatives /var/lib/dpkg/available /var/lib/dpkg/available-old /var/lib/dpkg/cmethopt /var/lib/dpkg/diversions /var/lib/dpkg/diversions-old /var/lib/dpkg/info /var/lib/dpkg/lock /var/lib/dpkg/parts /var/lib/dpkg/statoverride /var/lib/dpkg/statoverride-old /var/lib/dpkg/status /var/lib/dpkg/status-old /var/lib/dpkg/triggers /var/lib/dpkg/updates
---------------------------

df -Th
---------------------------
Filesystem    Type    Size  Used Avail Use% Mounted on
/dev/sda8     ext4     15G  3.7G   10G  28% /
udev         tmpfs    497M  312K  497M   1% /dev
none         tmpfs    497M  136K  497M   1% /dev/shm
none         tmpfs    497M   76K  497M   1% /var/run
none         tmpfs    497M  8.0K  497M   1% /var/lock
none         tmpfs    497M     0  497M   0% /lib/init/rw
/dev/sdb1     ext3     78G   39G   36G  53% /home

cat /etc/lsb-release
---------------------------
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=9.10
DISTRIB_CODENAME=karmic
DISTRIB_DESCRIPTION="Ubuntu 9.10"
  • Poslední úprava: 2019/02/25 18:20
  • (upraveno mimo DokuWiki)