404

[ Avaa Bypassed ]




Upload:

Command:

botdev@13.59.173.30: ~ $
#!/bin/bash
# We use some bash-isms (getopts?)

# Copyright (C) 2007-2017 Red Hat, Inc. All rights reserved.
#
# This file is part of LVM2.
#
# This copyrighted material is made available to anyone wishing to use,
# modify, copy, or redistribute it subject to the terms and conditions
# of the GNU General Public License v.2.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA

# lvm_dump: This script is used to collect pertinent information for
#           the debugging of lvm issues.

# following external commands are used throughout the script
# echo and test are internal in bash at least
MKDIR=mkdir # need -p
TAR=tar # need czf
RM=rm # need -rf
CP=cp
TAIL=tail # we need -n
LS=ls # need -la
PS=ps # need alx
SED=sed
DD=dd
CUT=cut
GREP=grep
DATE=date
BASENAME=basename
UDEVADM=udevadm
UNAME=uname
TR=tr
SOCAT=socat # either socat or nc is needed for dumping lvmetad state
NC=nc

if test "yes" = yes; then
    DDFLAGS='iflag=direct oflag=direct'
else
    DDFLAGS=
fi

# user may override lvm and dmsetup location by setting LVM_BINARY
# and DMSETUP_BINARY respectively
LVM=${LVM_BINARY-lvm}
DMSETUP=${DMSETUP_BINARY-dmsetup}
LVMETAD_SOCKET=${LVM_LVMETAD_SOCKET-/var/run/lvm/lvmetad.socket}
LVMPOLLD_SOCKET=${LVM_LVMPOLLD_SOCKET-/var/run/lvm/lvmpolld.socket}

die() {
    code=$1; shift
    echo "$@" 1>&2
    exit "$code"
}

"$LVM" version >& /dev/null || die 2 "Could not run lvm binary '$LVM'"
"$DMSETUP" version >& /dev/null || DMSETUP=:

function usage {
	echo "$0 [options]"
	echo "    -h print this message"
	echo "    -a advanced collection - warning: if lvm is already hung,"
	echo "       then this script may hang as well if -a is used"
	echo "    -c if running clvmd, gather cluster data as well"
	echo "    -d <directory> dump into a directory instead of tarball"
	echo "    -l gather lvmetad state if running"
	echo "    -p gather lvmpolld state if running"
	echo "    -m gather LVM metadata from the PVs"
	echo "    -s gather system info and context"
	echo "    -u gather udev info and context"
	echo ""

	exit 1
}

advanced=0
clustered=0
metadata=0
sysreport=0
udev=0
while getopts :acd:hlpmus opt; do
	case $opt in 
		a)	advanced=1 ;;
		c)	clustered=1 ;;
		d)	userdir=$OPTARG ;;
		h)	usage ;;
		l)	lvmetad=1 ;;
		p)	lvmpolld=1 ;;
		m)	metadata=1 ;;
		s)      sysreport=1 ;;
		u)	udev=1 ;;
		:)	echo "$0: $OPTARG requires a value:"; usage ;;
		\?)     echo "$0: unknown option $OPTARG"; usage ;;
		*)	usage ;;
	esac
done

NOW=$("$DATE" -u +%G%m%d%k%M%S | "$TR" -d ' ')
if test -n "$userdir"; then
	dir=$userdir
else
	dirbase="lvmdump-$HOSTNAME-$NOW"
	dir="$HOME/$dirbase"
fi

if test -d "$dir" ; then
	(shopt -s nullglob dotglob; test -r "$dir" -a -w "$dir" -a -x "$dir" && cd "$dir" && files=(*) && ((! ${#files[@]}))) || \
		die 5 "Fatal: directory $dir already exists and is not empty or inaccessible"
else
	test -e "$dir" && die 3 "Fatal: $dir already exists"
	"$MKDIR" -p "$dir" || die 4 "Fatal: could not create $dir"
fi

log="$dir/lvmdump.log"

myecho() {
	echo "$@"
	echo "$@" >> "$log"
}

log() {
	echo "$@" >> "$log"
	eval "$@"
}

warnings() {
	if test "$UID" != 0 && test "$EUID" != 0; then
		myecho "WARNING! Running as non-privileged user, dump is likely incomplete!"
	elif test "$DMSETUP" = ":"; then
		myecho "WARNING! Could not run dmsetup, dump is likely incomplete."
	fi
}

warnings

myecho "Creating dump directory: $dir"
echo " "

if (( advanced )); then
	myecho "Gathering LVM volume info..."

	myecho "  vgscan..."
	log "\"$LVM\" vgscan -vvvv >> \"$dir/vgscan\" 2>&1"

	myecho "  pvscan..."
	log "\"$LVM\" pvscan -v >> \"$dir/pvscan\" 2>> \"$log\""

	myecho "  lvs..."
	log "\"$LVM\" lvs -a -H -o +devices,kernel_major,kernel_minor >> \"$dir/lvs\" 2>> \"$log\""

	myecho "  pvs..."
	log "\"$LVM\" pvs -a -o +major,minor -v >> \"$dir/pvs\" 2>> \"$log\""

	myecho "  vgs..."
	log "\"$LVM\" vgs -v >> \"$dir/vgs\" 2>> \"$log\""
fi

if (( clustered )); then
	myecho "Gathering cluster info..."

	{
	for i in nodes status services; do
		cap_i=$(echo "$i"|tr a-z A-Z)
		echo "$cap_i:"
		echo "----------------------------------"
		log "cman_tool $i 2>> \"$log\""
		echo
	done

	echo "LOCKS:"
	echo "----------------------------------"
	if [ -f /proc/cluster/dlm_locks ]
	then
		echo clvmd > /proc/cluster/dlm_locks
		cat /proc/cluster/dlm_locks
		echo
		echo "RESOURCE DIR:"
		cat /proc/cluster/dlm_dir
		echo
		echo "DEBUG LOG:"
		cat /proc/cluster/dlm_debug
		echo
	fi
	if [ -f /debug/dlm/clvmd ]
	then
		cat /debug/dlm/clvmd
		echo
		echo "WAITERS:"
		cat /debug/dlm/clvmd_waiters
		echo
		echo "MASTER:"
		cat /debug/dlm/clvmd_master
	fi
	} >> "$dir/cluster_info"
fi

myecho "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
} >> "$dir/versions" 2>> "$log"

myecho "Gathering dmsetup info..."
log "\"$DMSETUP\" info -c >> \"$dir/dmsetup_info\" 2>> \"$log\""
log "\"$DMSETUP\" table >> \"$dir/dmsetup_table\" 2>> \"$log\""
log "\"$DMSETUP\" status >> \"$dir/dmsetup_status\" 2>> \"$log\""

# cat as workaround to avoid tty ioctl (selinux)
log "\"$DMSETUP\" ls --tree 2>> \"$log\" | cat >> \"$dir/dmsetup_ls_tree\""

myecho "Gathering process info..."
log "$PS alx >> \"$dir/ps_info\" 2>> \"$log\""

myecho "Gathering console messages..."
log "$TAIL -n 75 /var/log/messages >> \"$dir/messages\" 2>> \"$log\""

myecho "Gathering /etc/lvm info..."
log "$LS -laR /etc/lvm >> \"$dir/etc_lvm_listing\" 2>> \"$log\""
log "$CP -RL --preserve=all /etc/lvm \"$dir/lvm\" 2>> \"$log\""
log "$LVM dumpconfig --type diff --file \"$dir/config_diff\" 2>> \"$log\""
log "$LVM dumpconfig --type missing --file \"$dir/config_missing\" 2>> \"$log\""

myecho "Gathering /dev listing..."
log "$LS -laR /dev >> \"$dir/dev_listing\" 2>> \"$log\""

myecho "Gathering /sys/block listing..."
log "$LS -laR /sys/block >> \"$dir/sysblock_listing\"  2>> \"$log\""
log "$LS -laR /sys/devices/virtual/block >> \"$dir/sysblock_listing\"  2>> \"$log\""

if (( metadata )); then
	myecho "Gathering LVM metadata from Physical Volumes..."

	log "$MKDIR -p \"$dir/metadata\""

	pvs=$("$LVM" pvs --separator , --noheadings --units s --nosuffix -o \
	    name,pe_start 2>> "$log" | $SED -e 's/^ *//')
	for line in $pvs
	do
		test -z "$line" && continue
		pv=$(echo "$line" | "$CUT" -d, -f1)
		pe_start=$(echo "$line" | "$CUT" -d, -f2)
		name=$("$BASENAME" "$pv")
		myecho "  $pv"
		log "$DD if=$pv \"of=$dir/metadata/$name\" $DDFLAGS bs=512 count=$pe_start 2>> \"$log\""
	done
fi

if (( sysreport )); then
	myecho "Gathering system info..."

	sysreport_dir="$dir/sysreport"
	log_lines=10000

	SYSTEMCTL=$(which systemctl 2>> "$log")
	JOURNALCTL=$(which journalctl 2>> "$log")
	LSBLK=$(which lsblk 2>> "$log")

	log "$MKDIR -p \"$sysreport_dir\""

	if test -z "LSBLK"; then
		myecho "WARNING: lsblk not found"
	else
		if "$LSBLK" --help | "$GREP" -- --output-all >/dev/null; then
			log "$LSBLK -O >> \"$sysreport_dir/lsblk_O\""
		else
			log "$LSBLK >> \"$sysreport_dir/lsblk\""
		fi
		if "$LSBLK" --help | "$GREP" -- --inverse >/dev/null; then
			log "$LSBLK -s >> \"$sysreport_dir/lsblk_s\""
		fi
	fi

	if test -z "$SYSTEMCTL"; then
		myecho "WARNING: systemctl not found"
	elif test -z "$JOURNALCTL"; then
		myecho "WARNING: journalctl not found"
	else
		log "$JOURNALCTL -b --no-pager -o short-precise > \"$sysreport_dir/journal_content\" 2>> \"$log\""
		log "$SYSTEMCTL status -l --no-pager -n $log_lines -o short-precise dm-event.socket dm-event.service \
						   lvm2-monitor.service \
						   lvm2-lvmetad.socket lvm2-lvmetad.service \
						   lvm2-lvmpolld.socket lvm2-lvmpolld.service \
						   lvm2-cluster-activation.service \
						   lvm2-clvmd.service \
						   lvm2-cmirrord.service \
						   lvm2-activation-early.service \
						   lvm2-activation.service \
						   lvm2-activation-net.service \
						   > \"$sysreport_dir/systemd_lvm2_services_status\" 2>> \"$log\""
		log "$SYSTEMCTL list-units -l -a --no-legend --no-pager > \"$sysreport_dir/systemd_unit_list\" 2>> \"$log\""
		for unit in $("$GREP" lvm2-pvscan "$sysreport_dir/systemd_unit_list" | cut -d " " -f 1); do
			log "$SYSTEMCTL status -l --no-pager -n $log_lines -o short-precise $unit >> \"$sysreport_dir/systemd_lvm2_pvscan_service_status\""
		done
	fi
fi

if (( udev )); then
	myecho "Gathering udev info..."

	udev_dir="$dir/udev"

	log "$MKDIR -p \"$udev_dir\""
	log "$UDEVADM info --version >> \"$udev_dir/version\" 2>> \"$log\""
	log "$UDEVADM info --export-db >> \"$udev_dir/db\" 2>> \"$log\""
	log "$CP -a /etc/udev/udev.conf \"$udev_dir/conf\" 2>> \"$log\""
	log "$LS -la /lib/udev >> \"$udev_dir/lib_dir\" 2>> \"$log\""
	log "$CP -RL --preserve=all /etc/udev/rules.d \"$udev_dir/rules_etc\" 2>> \"$log\""
	log "$CP -RL --preserve=all /lib/udev/rules.d \"$udev_dir/rules_lib\" 2>> \"$log\""
fi

if (( lvmetad )); then
    (echo 'request="dump"'; echo '##') | {
	if type -p "$SOCAT" >& /dev/null; then
	    echo "$SOCAT unix-connect:$LVMETAD_SOCKET -" >> "$log"
	    "$SOCAT" "unix-connect:$LVMETAD_SOCKET" - 2>> "$log"
	elif echo | "$NC" -U "$LVMETAD_SOCKET"; then
	    echo "$NC -U $LVMETAD_SOCKET" >> "$log"
	    "$NC" -U "$LVMETAD_SOCKET" 2>> "$log"
	else
	    myecho "WARNING: Neither socat nor nc -U seems to be available." 1>&2
	    echo "# DUMP FAILED"
	    return 1
	fi
    } > "$dir/lvmetad.txt"
fi

if (( lvmpolld )); then
    (echo 'request="dump"'; echo '##') | {
	if type -p "$SOCAT" >& /dev/null; then
	    echo "$SOCAT unix-connect:$LVMPOLLD_SOCKET -" >> "$log"
	    "$SOCAT" "unix-connect:$LVMPOLLD_SOCKET" - 2>> "$log"
	elif echo | "$NC" -U "$LVMPOLLD_SOCKET"; then
	    echo "$NC -U $LVMPOLLD_SOCKET" >> "$log"
	    "$NC" -U "$LVMPOLLD_SOCKET" 2>> "$log"
	else
	    myecho "WARNING: Neither socat nor nc -U seems to be available." 1>&2
	    echo "# DUMP FAILED"
	    return 1
	fi
    } > "$dir/lvmpolld.txt"
fi

if test -z "$userdir"; then
	lvm_dump="$dirbase.tgz"
	myecho "Creating report tarball in $HOME/$lvm_dump..."
fi

warnings

if test -z "$userdir"; then
	cd "$HOME"
	"$TAR" czf "$lvm_dump" "$dirbase" 2>/dev/null
	"$RM" -rf "$dir"
fi

exit 0

Filemanager

Name Type Size Permission Actions
acpi_available File 112 B 0755
agetty File 55.23 KB 0755
apm_available File 81 B 0755
apparmor_parser File 1.41 MB 0755
badblocks File 26.01 KB 0755
blkdeactivate File 14.49 KB 0755
blkdiscard File 26.08 KB 0755
blkid File 86.11 KB 0755
blockdev File 38.07 KB 0755
brctl File 30.08 KB 0755
bridge File 86.16 KB 0755
capsh File 17.99 KB 0755
cfdisk File 94.44 KB 0755
cgdisk File 182.17 KB 0755
chcpu File 22.07 KB 0755
crda File 9.99 KB 0755
cryptdisks_start File 1.11 KB 0755
cryptdisks_stop File 1.16 KB 0755
cryptsetup File 86.23 KB 0755
cryptsetup-reencrypt File 80.96 KB 0755
ctrlaltdel File 18.07 KB 0755
debugfs File 217.47 KB 0755
depmod File 146.18 KB 0755
devlink File 78.16 KB 0755
dhclient File 488.42 KB 0755
dhclient-script File 15.25 KB 0755
dmeventd File 46.08 KB 0755
dmsetup File 158.8 KB 0755
dmstats File 158.8 KB 0755
dosfsck File 58.08 KB 0755
dosfslabel File 54.08 KB 0755
dumpe2fs File 26.08 KB 0755
e2fsck File 306.72 KB 0755
e2image File 34.08 KB 0755
e2label File 102.25 KB 0755
e2undo File 18.07 KB 0755
ebtables File 5.99 KB 0755
ebtables-restore File 9.99 KB 0755
ebtables-save File 1.63 KB 0755
ethtool File 338.9 KB 0755
fatlabel File 54.08 KB 0755
fdisk File 122.13 KB 0755
findfs File 10.07 KB 0755
fixparts File 62.17 KB 0755
fsadm File 23.5 KB 0755
fsck File 46.13 KB 0755
fsck.cramfs File 34.11 KB 0755
fsck.ext2 File 306.72 KB 0755
fsck.ext3 File 306.72 KB 0755
fsck.ext4 File 306.72 KB 0755
fsck.fat File 58.08 KB 0755
fsck.minix File 90.1 KB 0755
fsck.msdos File 58.08 KB 0755
fsck.vfat File 58.08 KB 0755
fsck.xfs File 433 B 0755
fsfreeze File 10.07 KB 0755
fstab-decode File 5.99 KB 0755
fstrim File 42.08 KB 0755
gdisk File 190.17 KB 0755
getcap File 9.99 KB 0755
getpcaps File 9.99 KB 0755
getty File 55.23 KB 0755
halt File 178.08 KB 0755
hdparm File 128.18 KB 0755
hwclock File 58.19 KB 0755
ifconfig File 77.11 KB 0755
init File 1.54 MB 0755
insmod File 146.18 KB 0755
installkernel File 2.58 KB 0755
integritysetup File 39.66 KB 0755
ip File 545.12 KB 0755
ip6tables File 92.74 KB 0755
ip6tables-restore File 92.74 KB 0755
ip6tables-save File 92.74 KB 0755
ipmaddr File 17.99 KB 0755
iptables File 92.74 KB 0755
iptables-restore File 92.74 KB 0755
iptables-save File 92.74 KB 0755
iptunnel File 21.99 KB 0755
iscsi-iname File 9.99 KB 0755
iscsi_discovery File 5.16 KB 0755
iscsiadm File 381.95 KB 0755
iscsid File 398.15 KB 0755
iscsistart File 358.13 KB 0755
isosize File 22.08 KB 0755
iw File 199.41 KB 0755
kbdrate File 9.99 KB 0755
killall5 File 22.08 KB 0755
ldconfig File 387 B 0755
ldconfig.real File 1001.67 KB 0755
logsave File 10 KB 0755
losetup File 82.19 KB 0755
lsmod File 146.18 KB 0755
lvchange File 2.42 MB 0755
lvconvert File 2.42 MB 0755
lvcreate File 2.42 MB 0755
lvdisplay File 2.42 MB 0755
lvextend File 2.42 MB 0755
lvm File 2.42 MB 0755
lvmconf File 12.55 KB 0755
lvmconfig File 2.42 MB 0755
lvmdiskscan File 2.42 MB 0755
lvmdump File 10.07 KB 0755
lvmetad File 82.13 KB 0755
lvmpolld File 70.45 KB 0755
lvmsadc File 2.42 MB 0755
lvmsar File 2.42 MB 0755
lvreduce File 2.42 MB 0755
lvremove File 2.42 MB 0755
lvrename File 2.42 MB 0755
lvresize File 2.42 MB 0755
lvs File 2.42 MB 0755
lvscan File 2.42 MB 0755
mdadm File 577.4 KB 0755
mdmon File 321.24 KB 0755
mii-tool File 18.46 KB 0755
mkdosfs File 34.5 KB 0755
mke2fs File 126.31 KB 0755
mkfs File 10.07 KB 0755
mkfs.bfs File 30.08 KB 0755
mkfs.cramfs File 34.01 KB 0755
mkfs.ext2 File 126.31 KB 0755
mkfs.ext3 File 126.31 KB 0755
mkfs.ext4 File 126.31 KB 0755
mkfs.fat File 34.5 KB 0755
mkfs.minix File 78.09 KB 0755
mkfs.msdos File 34.5 KB 0755
mkfs.ntfs File 78.11 KB 0755
mkfs.vfat File 34.5 KB 0755
mkfs.xfs File 423.52 KB 0755
mkhomedir_helper File 18.02 KB 0755
mkntfs File 78.11 KB 0755
mkswap File 78.08 KB 0755
modinfo File 146.18 KB 0755
modprobe File 146.18 KB 0755
mount.fuse File 9.99 KB 0755
mount.lowntfs-3g File 106.67 KB 0755
mount.ntfs File 142.7 KB 0755
mount.ntfs-3g File 142.7 KB 0755
mount.vmhgfs File 42.16 KB 0755
nameif File 14.14 KB 0755
ntfsclone File 54.12 KB 0755
ntfscp File 34.1 KB 0755
ntfslabel File 26.1 KB 0755
ntfsresize File 70.12 KB 0755
ntfsundelete File 50.1 KB 0755
on_ac_power File 2.16 KB 0755
pam_extrausers_chkpwd File 34 KB 2755
pam_extrausers_update File 34 KB 0755
pam_tally File 10.01 KB 0755
pam_tally2 File 14.01 KB 0755
parted File 78.09 KB 0755
partprobe File 10.07 KB 0755
pivot_root File 10.07 KB 0755
plipconfig File 10 KB 0755
plymouthd File 90.25 KB 0755
poweroff File 178.08 KB 0755
pvchange File 2.42 MB 0755
pvck File 2.42 MB 0755
pvcreate File 2.42 MB 0755
pvdisplay File 2.42 MB 0755
pvmove File 2.42 MB 0755
pvremove File 2.42 MB 0755
pvresize File 2.42 MB 0755
pvs File 2.42 MB 0755
pvscan File 2.42 MB 0755
rarp File 32.45 KB 0755
raw File 14.07 KB 0755
reboot File 178.08 KB 0755
regdbdump File 9.99 KB 0755
resize2fs File 58.07 KB 0755
rmmod File 146.18 KB 0755
route File 64.3 KB 0755
rtacct File 40.13 KB 0755
rtmon File 50 KB 0755
runlevel File 178.08 KB 0755
runuser File 42.07 KB 0755
setcap File 9.99 KB 0755
setvtrgb File 14.13 KB 0755
sfdisk File 106.08 KB 0755
sgdisk File 174.17 KB 0755
shadowconfig File 885 B 0755
shutdown File 178.08 KB 0755
slattach File 40.45 KB 0755
start-stop-daemon File 35.1 KB 0755
sulogin File 46.08 KB 0755
swaplabel File 14.07 KB 0755
swapoff File 18.07 KB 0755
swapon File 46.08 KB 0755
switch_root File 14.07 KB 0755
sysctl File 22.07 KB 0755
tc File 453.79 KB 0755
telinit File 178.08 KB 0755
tipc File 53.99 KB 0755
tune2fs File 102.25 KB 0755
udevadm File 574.4 KB 0755
umount.udisks2 File 9.99 KB 0755
unix_chkpwd File 34 KB 2755
unix_update File 34 KB 0755
ureadahead File 34.34 KB 0755
veritysetup File 35.45 KB 0755
vgcfgbackup File 2.42 MB 0755
vgcfgrestore File 2.42 MB 0755
vgchange File 2.42 MB 0755
vgck File 2.42 MB 0755
vgconvert File 2.42 MB 0755
vgcreate File 2.42 MB 0755
vgdisplay File 2.42 MB 0755
vgexport File 2.42 MB 0755
vgextend File 2.42 MB 0755
vgimport File 2.42 MB 0755
vgimportclone File 2.42 MB 0755
vgmerge File 2.42 MB 0755
vgmknodes File 2.42 MB 0755
vgreduce File 2.42 MB 0755
vgremove File 2.42 MB 0755
vgrename File 2.42 MB 0755
vgs File 2.42 MB 0755
vgscan File 2.42 MB 0755
vgsplit File 2.42 MB 0755
wipefs File 38.08 KB 0755
wpa_action File 1.69 KB 0755
wpa_cli File 135.74 KB 0755
wpa_supplicant File 2.16 MB 0755
xfs_repair File 631.16 KB 0755
xtables-multi File 92.74 KB 0755
zramctl File 90.19 KB 0755