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

IPv6 deaktivieren
TCP Port 443 (https) Zugriff mit openssl überprüfen
Thomas-Krenn Seriennummer unter Windows und Linux auslesen