Debuggen von BASH Skripten mit bash -x

Aus Thomas-Krenn-Wiki
Zur Navigation springen Zur Suche springen

BASH Skripte können sehr elegant mittels bash -x näher analysiert werden.

Beispiel lvmdump Bash Skript

In diesem Beispiel verwenden wir lvmdump - es handelt sich dabei um ein Bash-Skript:

adminuser@ubuntu-1404:~/tmp$ file /sbin/lvmdump
/sbin/lvmdump: Bourne-Again shell script, ASCII text executable

Zuerst rufen wir das lvmdump Bash Skript ohne bash -x auf auf:

adminuser@ubuntu-1404:~/tmp$ sudo lvmdump
Creating dump directory: /home/adminuser/lvmdump-tpw-20150818110243
 
Gathering LVM & device-mapper version info...
Gathering dmsetup info...
Gathering process info...
Gathering console messages...
Gathering /etc/lvm info...
Gathering /dev listing...
Gathering /sys/block listing...
Creating report tarball in /home/adminuser/lvmdump-tpw-20150818110243.tgz...

Bei der Ausführung mit bash -x wird gezeigt, welche Bash-Befehle Schritt für Schritt abgearbeitet werden:

adminuser@ubuntu-1404:~/tmp$ sudo bash -x lvmdump
+ MKDIR=mkdir
+ TAR=tar
+ RM=rm
+ CP=cp
+ TAIL=tail
+ LS=ls
+ PS=ps
+ SED=sed
+ DD=dd
+ CUT=cut
+ DATE=date
+ BASENAME=basename
+ UDEVADM=udevadm
+ UNAME=uname
+ TR=tr
+ SOCAT=socat
+ NC=nc
+ LVM=lvm
+ DMSETUP=dmsetup
+ LVMETAD_SOCKET=/var/run/lvm/lvmetad.socket
+ lvm version
+ dmsetup version
+ advanced=0
+ clustered=0
+ metadata=0
+ udev=0
+ getopts :acd:hmul opt
++ date -u +%G%m%d%k%M%S
++ tr -d ' '
+ NOW=20150818110249
+ test -n ''
+ dirbase=lvmdump-ubuntu-1404-20150818110249
+ dir=/home/adminuser/lvmdump-ubuntu-1404-20150818110249
+ test -e /home/adminuser/lvmdump-ubuntu-1404-20150818110249
+ mkdir -p /home/adminuser/lvmdump-ubuntu-1404-20150818110249
+ log=/home/adminuser/lvmdump-ubuntu-1404-20150818110249/lvmdump.log
+ warnings
+ test 0 '!=' 0
+ test dmsetup = :
+ myecho 'Creating dump directory: /home/adminuser/lvmdump-ubuntu-1404-20150818110249'
+ echo 'Creating dump directory: /home/adminuser/lvmdump-ubuntu-1404-20150818110249'
Creating dump directory: /home/adminuser/lvmdump-ubuntu-1404-20150818110249
+ echo 'Creating dump directory: /home/adminuser/lvmdump-ubuntu-1404-20150818110249'
+ echo ' '
 
+ ((  0  ))
+ ((  0  ))
+ myecho 'Gathering LVM & device-mapper version info...'
+ echo 'Gathering LVM & device-mapper version info...'
Gathering LVM & device-mapper version info...
+ echo 'Gathering LVM & device-mapper version info...'
+ echo 'LVM VERSION:'
+ lvm lvs --version
+ echo 'DEVICE MAPPER VERSION:'
+ dmsetup --version
+ echo 'KERNEL VERSION:'
+ uname -a
+ echo 'DM TARGETS VERSIONS:'
+ dmsetup targets
+ myecho 'Gathering dmsetup info...'
+ echo 'Gathering dmsetup info...'
Gathering dmsetup info...
+ echo 'Gathering dmsetup info...'
+ log '"dmsetup" info -c >> "/home/adminuser/lvmdump-ubuntu-1404-20150818110249/dmsetup_info" 2>> "/home/adminuser/lvmdump-ubuntu-1404-20150818110249/lvmdump.log"'
+ echo '"dmsetup" info -c >> "/home/adminuser/lvmdump-ubuntu-1404-20150818110249/dmsetup_info" 2>> "/home/adminuser/lvmdump-ubuntu-1404-20150818110249/lvmdump.log"'
+ eval '"dmsetup" info -c >> "/home/adminuser/lvmdump-ubuntu-1404-20150818110249/dmsetup_info" 2>> "/home/adminuser/lvmdump-ubuntu-1404-20150818110249/lvmdump.log"'
++ dmsetup info -c
+ log '"dmsetup" table >> "/home/adminuser/lvmdump-ubuntu-1404-20150818110249/dmsetup_table" 2>> "/home/adminuser/lvmdump-ubuntu-1404-20150818110249/lvmdump.log"'
+ echo '"dmsetup" table >> "/home/adminuser/lvmdump-ubuntu-1404-20150818110249/dmsetup_table" 2>> "/home/adminuser/lvmdump-ubuntu-1404-20150818110249/lvmdump.log"'
+ eval '"dmsetup" table >> "/home/adminuser/lvmdump-ubuntu-1404-20150818110249/dmsetup_table" 2>> "/home/adminuser/lvmdump-ubuntu-1404-20150818110249/lvmdump.log"'
++ dmsetup table
+ log '"dmsetup" status >> "/home/adminuser/lvmdump-ubuntu-1404-20150818110249/dmsetup_status" 2>> "/home/adminuser/lvmdump-ubuntu-1404-20150818110249/lvmdump.log"'
+ echo '"dmsetup" status >> "/home/adminuser/lvmdump-ubuntu-1404-20150818110249/dmsetup_status" 2>> "/home/adminuser/lvmdump-ubuntu-1404-20150818110249/lvmdump.log"'
+ eval '"dmsetup" status >> "/home/adminuser/lvmdump-ubuntu-1404-20150818110249/dmsetup_status" 2>> "/home/adminuser/lvmdump-ubuntu-1404-20150818110249/lvmdump.log"'
++ dmsetup status
+ log '"dmsetup" ls --tree 2>> "/home/adminuser/lvmdump-ubuntu-1404-20150818110249/lvmdump.log" | cat >> "/home/adminuser/lvmdump-ubuntu-1404-20150818110249/dmsetup_ls_tree"'
+ echo '"dmsetup" ls --tree 2>> "/home/adminuser/lvmdump-ubuntu-1404-20150818110249/lvmdump.log" | cat >> "/home/adminuser/lvmdump-ubuntu-1404-20150818110249/dmsetup_ls_tree"'
+ eval '"dmsetup" ls --tree 2>> "/home/adminuser/lvmdump-ubuntu-1404-20150818110249/lvmdump.log" | cat >> "/home/adminuser/lvmdump-ubuntu-1404-20150818110249/dmsetup_ls_tree"'
++ dmsetup ls --tree
++ cat
+ myecho 'Gathering process info...'
+ echo 'Gathering process info...'
Gathering process info...
+ echo 'Gathering process info...'
+ log 'ps alx >> "/home/adminuser/lvmdump-ubuntu-1404-20150818110249/ps_info" 2>> "/home/adminuser/lvmdump-ubuntu-1404-20150818110249/lvmdump.log"'
+ echo 'ps alx >> "/home/adminuser/lvmdump-ubuntu-1404-20150818110249/ps_info" 2>> "/home/adminuser/lvmdump-ubuntu-1404-20150818110249/lvmdump.log"'
+ eval 'ps alx >> "/home/adminuser/lvmdump-ubuntu-1404-20150818110249/ps_info" 2>> "/home/adminuser/lvmdump-ubuntu-1404-20150818110249/lvmdump.log"'
++ ps alx
+ myecho 'Gathering console messages...'
+ echo 'Gathering console messages...'
Gathering console messages...
+ echo 'Gathering console messages...'
+ log 'tail -n 75 /var/log/messages >> "/home/adminuser/lvmdump-ubuntu-1404-20150818110249/messages" 2>> "/home/adminuser/lvmdump-ubuntu-1404-20150818110249/lvmdump.log"'
+ echo 'tail -n 75 /var/log/messages >> "/home/adminuser/lvmdump-ubuntu-1404-20150818110249/messages" 2>> "/home/adminuser/lvmdump-ubuntu-1404-20150818110249/lvmdump.log"'
+ eval 'tail -n 75 /var/log/messages >> "/home/adminuser/lvmdump-ubuntu-1404-20150818110249/messages" 2>> "/home/adminuser/lvmdump-ubuntu-1404-20150818110249/lvmdump.log"'
++ tail -n 75 /var/log/messages
+ myecho 'Gathering /etc/lvm info...'
+ echo 'Gathering /etc/lvm info...'
Gathering /etc/lvm info...
+ echo 'Gathering /etc/lvm info...'
+ log 'cp -a /etc/lvm "/home/adminuser/lvmdump-ubuntu-1404-20150818110249/lvm" 2>> "/home/adminuser/lvmdump-ubuntu-1404-20150818110249/lvmdump.log"'
+ echo 'cp -a /etc/lvm "/home/adminuser/lvmdump-ubuntu-1404-20150818110249/lvm" 2>> "/home/adminuser/lvmdump-ubuntu-1404-20150818110249/lvmdump.log"'
+ eval 'cp -a /etc/lvm "/home/adminuser/lvmdump-ubuntu-1404-20150818110249/lvm" 2>> "/home/adminuser/lvmdump-ubuntu-1404-20150818110249/lvmdump.log"'
++ cp -a /etc/lvm /home/adminuser/lvmdump-ubuntu-1404-20150818110249/lvm
+ myecho 'Gathering /dev listing...'
+ echo 'Gathering /dev listing...'
Gathering /dev listing...
+ echo 'Gathering /dev listing...'
+ log 'ls -laR /dev >> "/home/adminuser/lvmdump-ubuntu-1404-20150818110249/dev_listing" 2>> "/home/adminuser/lvmdump-ubuntu-1404-20150818110249/lvmdump.log"'
+ echo 'ls -laR /dev >> "/home/adminuser/lvmdump-ubuntu-1404-20150818110249/dev_listing" 2>> "/home/adminuser/lvmdump-ubuntu-1404-20150818110249/lvmdump.log"'
+ eval 'ls -laR /dev >> "/home/adminuser/lvmdump-ubuntu-1404-20150818110249/dev_listing" 2>> "/home/adminuser/lvmdump-ubuntu-1404-20150818110249/lvmdump.log"'
++ ls -laR /dev
+ myecho 'Gathering /sys/block listing...'
+ echo 'Gathering /sys/block listing...'
Gathering /sys/block listing...
+ echo 'Gathering /sys/block listing...'
+ log 'ls -laR /sys/block >> "/home/adminuser/lvmdump-ubuntu-1404-20150818110249/sysblock_listing"  2>> "/home/adminuser/lvmdump-ubuntu-1404-20150818110249/lvmdump.log"'
+ echo 'ls -laR /sys/block >> "/home/adminuser/lvmdump-ubuntu-1404-20150818110249/sysblock_listing"  2>> "/home/adminuser/lvmdump-ubuntu-1404-20150818110249/lvmdump.log"'
+ eval 'ls -laR /sys/block >> "/home/adminuser/lvmdump-ubuntu-1404-20150818110249/sysblock_listing"  2>> "/home/adminuser/lvmdump-ubuntu-1404-20150818110249/lvmdump.log"'
++ ls -laR /sys/block
+ log 'ls -laR /sys/devices/virtual/block >> "/home/adminuser/lvmdump-ubuntu-1404-20150818110249/sysblock_listing"  2>> "/home/adminuser/lvmdump-ubuntu-1404-20150818110249/lvmdump.log"'
+ echo 'ls -laR /sys/devices/virtual/block >> "/home/adminuser/lvmdump-ubuntu-1404-20150818110249/sysblock_listing"  2>> "/home/adminuser/lvmdump-ubuntu-1404-20150818110249/lvmdump.log"'
+ eval 'ls -laR /sys/devices/virtual/block >> "/home/adminuser/lvmdump-ubuntu-1404-20150818110249/sysblock_listing"  2>> "/home/adminuser/lvmdump-ubuntu-1404-20150818110249/lvmdump.log"'
++ ls -laR /sys/devices/virtual/block
+ ((  0  ))
+ ((  0  ))
+ ((    ))
+ test -z ''
+ lvm_dump=lvmdump-ubuntu-1404-20150818110249.tgz
+ myecho 'Creating report tarball in /home/adminuser/lvmdump-ubuntu-1404-20150818110249.tgz...'
+ echo 'Creating report tarball in /home/adminuser/lvmdump-ubuntu-1404-20150818110249.tgz...'
Creating report tarball in /home/adminuser/lvmdump-ubuntu-1404-20150818110249.tgz...
+ echo 'Creating report tarball in /home/adminuser/lvmdump-ubuntu-1404-20150818110249.tgz...'
+ warnings
+ test 0 '!=' 0
+ test dmsetup = :
+ test -z ''
+ cd /home/adminuser
+ tar czf lvmdump-ubuntu-1404-20150818110249.tgz lvmdump-ubuntu-1404-20150818110249
+ rm -rf /home/adminuser/lvmdump-ubuntu-1404-20150818110249
+ exit 0


Foto Werner Fischer.jpg

Autor: Werner Fischer

Werner Fischer arbeitet im Product Management Team von Thomas-Krenn. Er evaluiert dabei neueste Technologien und teilt sein Wissen in Fachartikeln, bei Konferenzen und im Thomas-Krenn Wiki. Bereits 2005 - ein Jahr nach seinem Abschluss des Studiums zu Computer- und Mediensicherheit an der FH Hagenberg - heuerte er beim bayerischen Server-Hersteller an. Als Öffi-Fan nutzt er gerne Bus & Bahn und genießt seinen morgendlichen Spaziergang ins Büro.


Das könnte Sie auch interessieren

Apache Internal Server Error aufgrund htaccess bad flag delimiters beheben
Vim Dateimanagement von Remote Hosts mit netrw
Wlan Powermanagement unter Linux mit iw regeln