diff options
Diffstat (limited to 'src/extras')
-rwxr-xr-x | src/extras/rh-upload | 283 | ||||
-rwxr-xr-x | src/extras/sos-open | 151 | ||||
-rwxr-xr-x | src/extras/sysreport/functions | 132 | ||||
-rwxr-xr-x | src/extras/sysreport/sysreport-fdisk | 8 | ||||
-rwxr-xr-x | src/extras/sysreport/sysreport.legacy | 766 | ||||
-rw-r--r-- | src/extras/sysreport/text.xsl | 33 |
6 files changed, 0 insertions, 1373 deletions
diff --git a/src/extras/rh-upload b/src/extras/rh-upload deleted file mode 100755 index 75a86f43..00000000 --- a/src/extras/rh-upload +++ /dev/null @@ -1,283 +0,0 @@ -#!/bin/bash - -################################################################################# -# # -# rh-upload # -# Version - 0.3 # -# Copyright (c) 2007 Red Hat, Inc. All rights reserved. # -# # -# # -# Written by David Mair # -# Cleanup and generalized for any kind of file by Olivier Arsac # -# Idea stolen from Chris Snook :-) # -# # -# Purpose - To help in the automatic upload of files. # -# Specifically, this script will compress, encrypt, md5sum, # -# and upload the file automatically when invoked. # -# Items are optional and specified by command line switch. # -# ############################################################################### - - -## Global directives -umask 0077 - -## Declare some variables -Date=`/bin/date -u +%G%m%d%k%M%S | /usr/bin/tr -d ' '` -Destination="dropbox.redhat.com" - -function usage { -cat <<EOF -rh-upload [-cehnNq] [-s size of hunks in MB] -f filename - rh-upload automates the upload of files to the Red Hat ftp. - The script helps the user to compress, checksum, encrypt and upload a file. - -c|--checksum : perform an md5 checksum on the file - -e|--encrypt : encrypt the file - -f|--file : file to act on (required) - -h|--help : show this usage help - -z|--compress : compress the file - -n|--noupload : Do NOT upload - -q|--quiet : Do everything I ask and do it quietly - -s|--split : split file into small hunks - -EOF -} - - -# echo to stderr -function echoe(){ - echo -e "$@" 1>&2 -} - -# echo unless in verbosity is too low -function echov(){ - local level="$1" - shift - if [[ $Verbose -ge "$level" ]]; then echo -e "$@"; fi -} - -# Parse command line options (and perform some checks) -function parse(){ - if [ $# == 0 ]; then - usage - exit 0 - fi - - TEMP=`getopt -o heuczqs:f:n --long help,encrypt,quiet,noupload,checksum,compress,split:,file: -n 'rh-upload' -- "$@"` - - if [ $? != 0 ]; then - echo "Options error -- Terminating..." >&2 - usage - exit 1 - fi - - eval set -- "$TEMP" - Upload=1 - Split=0 - Verbose=1 - Compress=0 - Encrypt=0 - Force=0 - while true; do - case "$1" in - -h|--help) usage; exit 0;; - -e|--encrypt) Encrypt=1; shift;; - -N|--noupload) Upload=0; shift;; - -c|--checksum) Checksum=1; shift;; - -q|--quiet) Verbose=0; shift;; - -z|--compress) Compress=1; shift;; - -s|--split) - case $2 in - "") echoe "You must specify a hunk size."; exit 1 ;; - *) Split=$2; shift 2;; - esac ;; - -F|--force) Force=1; shift;; - -f|--file) - case "$2" in - "") echoe "You must specify a file name."; exit 1 ;; - *) File=$2; shift 2;; - esac ;; - --) shift; break ;; - *) echoe "Wrong options or flag specified"; usage; exit 1;; - esac - done - - # Ensure the -f||--file flag was passed or die - if [ -z "$File" ]; then - echoe "The -f or --file flag is required! Terminating." - usage - exit 1 - fi - - # Validate the file exists or die - if [ ! -f "$File" ]; then - echoe "Invalid filename or file not found. Terminating." - exit 1 - fi - File_dirname=${File%/*} - File_basename=${File##*/} - File_ext=${File_basename##*.} - Src_file="$File" - Dst_file="$File_basename" -} - -function ticket(){ - echov 1 - echov 1 "We'll need to use your issue-tracker ticket number for a couple of things." - echo -n "Please enter ticket number: " - read Ticket_number - Dst_file="${Ticket_number}-${Date}-${File_basename}" -} - -# Compress the file -function compress(){ - if [ "$Compress" != 0 ]; then - echov 1 "Starting file compression. This may take some time." - # Begin compression of file - if [ ! -x /usr/bin/gzip ]; then - echoe "Cannot find gzip in /usr/bin/. Terminating." - exit 1 - else - /usr/bin/gzip --fast "$Src_file" - fi - Src_file="${Src_file}.gz" - Dst_file="${Dst_file}.gz" - fi -} - -# Encrypt the file -function encrypt(){ - if [ "$Encrypt" != 0 ]; then - echov 1 "Encrypting file. This should only take a few minutes." - if [ ! -x /usr/bin/openssl ]; then - echoe "Cannot find openssl in /usr/bin. Terminating." - exit 1 - fi - # Use the ticket number as the ssl keyfile name - Key_file="${Ticket_number}-${Date}.key" - /usr/bin/openssl rand -out "$Key_file" -base64 48 - echov 1 "You have chosen to encrypt your file. Your passkey file is: $Key_file" - echov 1 "Please attach this key to your ticket." - /usr/bin/openssl aes-128-cbc -in $Src_file -out $Src_file.aes -pass file:"$Key_file" - Src_file="$Src_file.aes" - Dst_file="$Dst_file.aes" - fi -} - -function checksum(){ - if [ "$Checksum" != 0 ]; then - echov 1 "Cheksuming $Src_file... (This should only take a few minutes)" - if [ ! -x /usr/bin/md5sum ]; then - echoe "Cannot find md5sum in /usr/bin. Terminating." - exit 1 - fi - MD5_file="${Ticket_number}-${Date}-checksum.out" - MD5_result=`/usr/bin/md5sum "$Src_file" | awk '{print $1}'` - echo "$MD5_result" > "$MD5_file" - echov 1 "The MD5 checksum is $MD5_result (in $MD5_file)." - fi -} - -function split(){ - if [ "$Split" -eq 0 ]; then - return - fi - local hunk_size="$Split" - if [[ "$hunk_size" -gt 0 ]] && [[ "$hunk_size" -lt 1001 ]]; then - if [ ! -x /usr/bin/split ]; then - echoe "Cannot find split in /usr/bin. Terminating." - exit 1 - fi - Split_dir="${Ticket_number}-${Date}" - # We need to make a directory to keep things sane - echov 1 "Creating directory $Split_dir to house file hunks..." - /bin/mkdir "$Split_dir" - echov 1 "Splitting $Src_file..." - /usr/bin/split -b "$hunk_size"m -d "$Src_file" "${Split_dir}/${Dst_file}" - else - echoe "Invalid hunk size argument. Please enter a number greater than 0 and less than 1001. Terminating." - exit 1 - fi -} - -function upload(){ - if [ "$Upload" -eq 0 ]; then - echov 1 "All file operations are complete. The file(s) is ready to upload at your convenience." - return - fi - echov 1 "The file(s) will now be uploaded." - echo -n "Please enter the destination host (default is $Destination): " - local destination_input - read destination_input - if [ "$destination_input" != "" ]; then - Destination=$destination_input - fi - echov 1 - echov 1 "Uploading to $Destination... (This could take quite a while)." - if [ ! -x /usr/bin/lftp ]; then - # No lftp installed - echov 1 "lftp could not be found in /usr/bin. The file(s) will need to be uploaded manually." - Ftp_res=255 - else - # Make the lftp script first - local script="/tmp/rh-upload-lftp.$$" - echo "lftp $Destination <<EOF" > $script - echo "cd incoming" >> $script - if [ "$Split" != 0 ]; then - echo "lcd $Split_dir" >> $script - echo "mirror -R" >> $script - else - echo "put $Src_file -o $Dst_file" >> $script - fi - echo "exit" >> $script - echo "EOF" >> $script - /usr/bin/lftp -f $script - Ftp_res=$? - fi -} - -function closure(){ - if [ "$Encrypt" != 0 ]; then - echov 1 "## File was encrypted with key $Key_file." - echov 1 "Please upload this key file to Issue Tracker or send it to your support representative for decryption after upload." - fi - - if [ "$Checksum" != 0 ]; then - echov 1 "## A checksum was performed on your file." - echov 1 "The MD5 checksum is $MD5_result (in $MD5_file)." - echov 1 "Please include this when updating your ticket so your support representative can verify the copy uploaded." - fi - - if [ "$Split" != 0 ]; then - echov 1 "## Your file was split and the hunks are in: $Split_dir/ " - fi - - if [ -n "$Ftp_res" ] && [ "$Ftp_res" -eq 0 ]; then - echov 1 "This script has completed successfully the upload." - if [ "$Compress" != 0 ] || [ "$Split" != 0 ]; then - echov 1 "You performed file encryption and/or file splitting." - echov 1 "You may consider removing those temporary files." - fi - else - echoe "Sorry unable to upload the files to $Destination. You may want to retry or do it manually." - fi - - if [ "$Compress" != 0 ]; then - echov 1 "It is NOT recommended to remove the gzipped copy of the file." - echov 1 "This is the only remaining copy of the file on your system." - echov 1 "It is recommended to retain the file until your support representative indicates that the problem has been identified and/or resolved." - fi -} - -function main(){ - # Run through the functions - parse $@ - ticket - compress - encrypt - checksum - split - upload - closure -} - -main $@ diff --git a/src/extras/sos-open b/src/extras/sos-open deleted file mode 100755 index ffc9f051..00000000 --- a/src/extras/sos-open +++ /dev/null @@ -1,151 +0,0 @@ -#!/usr/bin/python - -import os, commands, getopt, sys, tarfile - -# FILES NEEDED BY CHECKSYSREPORT: /etc/redhat-release /etc/sysconfig/rhn/up2date rpm-Va installed-rpms uname lsmod - -CONFIG = {} -report_dirs = [] - -CONFIG["outdir"] = "/tmp/sysreports" -CONFIG["extract_reports"] = [] -CONFIG["spawn_terminal"] = False -if not sys.stdin.isatty(): CONFIG["spawn_terminal"] = True -else: CONFIG["spawn_terminal"] = False - -def cat(fname): - try: - fp = open(fname,"r") - print fp.read() - fp.close() - except: pass - -try: - opts, args = getopt.getopt(sys.argv[1:], "hi:w:vxf", ["help", "input="]) -except getopt.GetoptError: - # print help information and exit: - usage() - sys.exit(2) - -for o, a in opts: - if o == "-v": - verbose = True - if o == "-f": - CONFIG["spawn_terminal"] = False - if o == "-x": - CONFIG["spawn_terminal"] = True - sys.argv[sys.argv.index("-x")] = "-f" - if o in ("-h", "--help"): - usage() - sys.exit() - if o in ("-d"): - CONFIG["outdir"] = a - if o in ("-w"): - a = os.path.abspath(a) - try: os.stat(a) - except: print "ERROR: could not open", a - else: report_dirs.append(a) - - if o in ("-i"): - a = os.path.abspath(a) - try: os.stat(a) - except: print "ERROR: could not open", a - -if CONFIG["spawn_terminal"]: - print "spawning new terminal" - sys.argv[0] = os.path.abspath(sys.argv[0]) - os.system("gnome-terminal -e '%s'" % (' '.join(sys.argv))) - sys.exit() - -CONFIG["extract_reports"] = [os.path.abspath(a) for a in args] - -if not os.path.isdir(CONFIG["outdir"]): - if not os.path.exists(CONFIG["outdir"]): - exit("ERROR: working directory path exists but it's not a directory") - else: - try: os.mkdir(CONFIG["outdir"]) - except: exit("ERROR: could not create working directory") - -try: os.chdir(CONFIG["outdir"]) -except: exit("ERROR: could not chdir into working directory, please check permissions") - -for report in CONFIG["extract_reports"]: - report_ext = report.rsplit(".",1)[-1] - - if report_ext == "gpg": - clear_fname = os.path.join(CONFIG["outdir"],os.path.basename(report.rsplit(".",1)[0])) - status, output = commands.getstatusoutput("gpg --output %s %s" % (clear_fname,report)) - if status: - sys.exit("ERROR: could not decrypt using gpg" + output ) - report = clear_fname - report_ext = clear_fname.rsplit(".",1)[-1] - del clear_fname - - outdir = None - tar = tarfile.open(report, "r") - for tarinfo in tar: - if tarinfo.isdir(): outdir = tarinfo.name ; break - tar.close() - - if not outdir: - print("INFO: archive doesn't appear to be either a sysreport or sosreport") - cddir = os.path.basename(report) - for sout in [ ".tar.gz", ".tgz", ".tar.bz2" ]: - if cddir.endswith(sout): cddir = cddir[:-len(sout)] - cddir = os.path.abspath(os.path.join(CONFIG["outdir"],"extract_" + cddir)) - outdir = cddir - else: - cddir = CONFIG["outdir"] - outdir = os.path.abspath(os.path.join(CONFIG["outdir"], outdir)) - - extract = True - if os.path.isdir(outdir): - extract = False - yorno = False - print "This report already seems to have been extracted in:" - print " " + outdir - print - while yorno not in ['y','n']: yorno = raw_input("Do you want to replace it with a fresh copy ? (y/n) ").lower() - if yorno == 'y': - print "Deleting previous copy..." - os.system("chmod -R u+rw %s" % outdir) - os.system("rm -rf %s" % outdir) - extract = True - - if extract: - print "Extracting..." - if not os.path.isdir(cddir): - os.mkdir(cddir) - if report_ext == "bz2": - status, output = commands.getstatusoutput("tar xCfj %s %s" % (cddir,report)) - elif report_ext == "gz" or report_ext == "tgz" : - status, output = commands.getstatusoutput("tar xCfz %s %s" % (cddir,report)) - - if status: - print("ERROR: there was some problem extracting the report (%s)" % report) - - report_dirs.append(os.path.abspath(outdir)) - -if len(report_dirs) == 1 and os.path.isdir(report_dirs[0]): - os.chdir(report_dirs[0]) - - if os.path.isfile("sos_reports/diagnose.txt"): - print - print "Diagnostics messages available:" - print - fp = open("sos_reports/diagnose.txt","r") - for line in fp.readlines(): - print " " + line.strip("\n") - fp.close() - print - - report_dirs[0] - - print - print "The extracted report is located in: " - print " " + report_dirs[0] - print "Once finished, press exit to return." - print - cat("uname") - os.system("PS1='[SoS \W]\$ ' HOME='%s' /bin/bash -l" % (report_dirs[0]) ) - sys.exit(-1) diff --git a/src/extras/sysreport/functions b/src/extras/sysreport/functions deleted file mode 100755 index fff52ccd..00000000 --- a/src/extras/sysreport/functions +++ /dev/null @@ -1,132 +0,0 @@ -#! /bin/sh -export PATH="/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin" -export LANG=C -export LC_ALL=C -export LC_CTYPE=C - -log="sysreport.log" - -fixupfile() { - if [ -f $2 ] ; then - /bin/sed -e$1 $2 > $2.newfile - /bin/mv $2.newfile $2 - fi - return 0 -} - -getpartinfo() { - # Get fdisk -l output from all disks/partitionable raid devices from /proc/partitions - raiddevs=`/bin/cat /proc/partitions | /bin/egrep -v "^major|^$" | /bin/awk '{print $4}' | /bin/grep \/ | /bin/egrep -v "p[0123456789]$"` - disks=`/bin/cat /proc/partitions | /bin/egrep -v "^major|^$" | /bin/awk '{print $4}' | /bin/grep -v / | /bin/egrep -v "[0123456789]$"` - echo "fdisk -l output" - for d in $raiddevs $disks ; do - echo "<---- Disk: /dev/${d} ---->" - echo "" - /sbin/fdisk -l /dev/${d} 2>&1 - echo "" - echo "<---- END ---->" - done -} - -getpciinfo() { -( echo "lspci" - echo - /sbin/lspci - echo - echo "lspci -n" - echo - /sbin/lspci -n - echo - echo "lspci -nv" - echo - /sbin/lspci -nv - echo - echo "lspci -nvv" - echo - /sbin/lspci -nvv ) 2>&1 -} - -catiffile() { - if [ -d $1 ]; then - /bin/cp -p -x --parents -R $1 $ROOT 2>>$ROOT/$log - find $ROOT/$1 -type b -o -type c | xargs rm -f 2>/dev/null || : - echo -n $STATUS - echo_success - return 1 - fi - if [ -f $1 ]; then - /bin/cp -p --parents $1 $ROOT 2>>$ROOT/$log - echo -n $STATUS - echo_success - return 1 - fi - - return 0 -} - -catifexec() { - if [ -x $1 ]; then - echo -n $STATUS - echo "$*" >> $ROOT/`/bin/basename $1` - $* >> $ROOT/`/bin/basename $1` 2>&1 - echo_success - return 1 - fi - return 0 -} - -# The following was borrowed from the Red Hat 6.x init scripts function -# to aid in letting the user know the application was still working. -# -# Get a sane screen width -[ -z "$COLUMNS" ] && COLUMNS=80 - -# Read in our configuration -if [ -z "$BOOTUP" ]; then - if [ -f /etc/sysconfig/init ]; then - . /etc/sysconfig/init - else - # This all seem confusing? Look in /etc/sysconfig/init, - # or in /usr/doc/initscripts-*/sysconfig.txt - BOOTUP=color - RES_COL=60 - MOVE_TO_COL="echo -en \\033[300C\\033[$[${COLUMNS}-${RES_COL}]D" - SETCOLOR_SUCCESS="echo -en \\033[1;32m" - SETCOLOR_FAILURE="echo -en \\033[1;31m" - SETCOLOR_WARNING="echo -en \\033[1;33m" - SETCOLOR_NORMAL="echo -en \\033[0;39m" - LOGLEVEL=1 - fi -fi - -echo_success() { - [ "$BOOTUP" = "color" ] && $MOVE_TO_COL - echo -n "[ " - [ "$BOOTUP" = "color" ] && $SETCOLOR_SUCCESS - echo -n "OK" - [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL - echo " ]" - return 0 -} - -echo_failure() { - [ "$BOOTUP" = "color" ] && $MOVE_TO_COL - echo -n "[" - [ "$BOOTUP" = "color" ] && $SETCOLOR_FAILURE - echo -n "FAILED" - [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL - echo "]" - return 1 -} - -echo_passed() { - [ "$BOOTUP" = "color" ] && $MOVE_TO_COL - echo -n "[" - [ "$BOOTUP" = "color" ] && $SETCOLOR_WARNING - echo -n "PASSED" - [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL - echo "]" - return 1 -} - - diff --git a/src/extras/sysreport/sysreport-fdisk b/src/extras/sysreport/sysreport-fdisk deleted file mode 100755 index 451cb535..00000000 --- a/src/extras/sysreport/sysreport-fdisk +++ /dev/null @@ -1,8 +0,0 @@ -#! /bin/sh - -/sbin/fdisk -l /dev/hd[a-g] -/sbin/fdisk -l /dev/sd[a-p] -/sbin/fdisk -l /dev/md[0-9] /dev/md[1][0-5] -for i in `/bin/ls /dev/rd/ | /bin/grep -v p[0-9]`; do - /sbin/fdisk -l /dev/rd/"$i" 2>&1 -done diff --git a/src/extras/sysreport/sysreport.legacy b/src/extras/sysreport/sysreport.legacy deleted file mode 100755 index 043ba026..00000000 --- a/src/extras/sysreport/sysreport.legacy +++ /dev/null @@ -1,766 +0,0 @@ -#! /bin/bash -# -# System Report -# Copyright (c) 1999-2006 Red Hat, Inc. All rights reserved. -# -# Written by: -# Wil Harris <wil@redhat.com> -# Peter Jones <pjones@redhat.com> -# Preston Brown <pbrown@redhat.com> -# Than Ngo <than@redhat.com> - -umask 0077 -UTILDIR=/usr/share/sysreport -VER=`/bin/uname -r` -PATH="" -PROGNAME="sysreport" -DATE=`/bin/date -u +%G%m%d%k%M%S | /usr/bin/tr -d ' '` - -function usage { - echo "Sysreport is a utility that gathers information about a system's" - echo "hardware and configuration. The information can then be used for" - echo "diagnostic purposes and debugging. Sysreport is commonly used to help" - echo "support technicians and developers by providing a "snapshot" of a" - echo "system's current layout." - echo - echo "Usage: sysreport [OPTION]" - echo " -help : show help" - echo " -norpm : omit collecting information about currently installed packages" - echo " -dmidecode: enable dmidecode, getting information about the hardware" - echo " -firewall : collecting the system firewall rules" - echo " -home : place sysreport outputs within home directory" - echo " -usesysrq : collecting information about sysrq-trigger" - echo - exit 0 -} - -[ $# -lt 6 ] || usage -for i -do - case "$i" in - -help) usage;; - -norpm) NORPM=yes;; - -dmidecode) DMIDECODE=yes;; - -firewall) FIREWALL=yes;; - -home) HOMEDIR=yes;; - -sysrq) SYSRQ_TRIGGER=yes;; - -usesysrq) SYSRQ_TRIGGER=yes;; - *) usage;; - esac -done - -if [ -f $UTILDIR/functions ]; then - . $UTILDIR/functions -else - echo "Sysreport is not properly installed" - exit 1 -fi -if [ $UID != 0 ]; then - echo "You must be root to use this utility" - exit 1 -fi - -if [ "$HOMEDIR" = yes ] ; then - TEMPDIR=$HOME - ROOT=$HOME/sysreport-$DATE - /bin/mkdir $ROOT >& /dev/null -else - TEMPDIR=/tmp - ROOT=`/bin/mktemp -dq /tmp/sysreport.XXXXXXXX` -fi -if [ $? != 0 ] ; then - echo "Cannot make temp dir" - exit 1 -fi - -trap "{ rm -rf $ROOT ; exit ; }" EXIT - -if [ -f /etc/fedora-release ] ; then - release_name="Fedora Core" -else - release_name="Red Hat Linux" -fi - -echo -echo "This utility will go through and collect some detailed information " -echo "about the hardware and setup of your $release_name system." -echo "This information will be used to diagnose problems with your system" -echo "and will be considered confidential information. Red Hat will use" -echo "this information for diagnostic purposes ONLY. " -echo -echo "Please wait while we collect information about your system." -echo -echo "This process may take a while to complete...." -echo "No changes will be made to your system during this process." -echo -echo "NOTE: You can safely ignore a failed message. This only means a file" -echo "we were checking for did not exist." -echo -echo "If your system hangs while gathering rpm information, please abort" -echo "the script with CTRL-C and run it again after adding -norpm to the" -echo "sysreport command line" -echo -echo "Press ENTER to continue, or CTRL-C to quit." -read IGNORE - -echo -echo "Getting system configuration information." -echo -STATUS="Determining $release_name version:" -catiffile "/etc/redhat-release" - -STATUS="Determinding your current hostname: " -catifexec "/bin/hostname" - -STATUS="Getting the date:" -catifexec "/bin/date" - -STATUS="Checking your systems current uptime and load average:" -catifexec "/usr/bin/uptime" - -STATUS="Checking available memory:" -catifexec "/usr/bin/free" - -STATUS="Checking free disk space:" -catifexec "/bin/df" "-al" - -STATUS="Checking currently running processes:" -catifexec "/bin/ps" "-e -o euser,pid,ppid,tty,%cpu,%mem,rss,vsz,start_time,time,state,wchan,cmd" - -STATUS="Checking current process tree:" -catifexec "/usr/bin/pstree" - -STATUS="Collecting information about ld.so.conf:" -catiffile "/etc/ld.so.conf" - -STATUS="Collecting information about ld.so.conf.d:" -catiffile "/etc/ld.so.conf.d" - -STATUS="Collecting IPC-related information:" -catifexec "/usr/bin/ipcs" "-a" - -STATUS="Collecting information about chkconfig --list:" -catifexec "/sbin/chkconfig" "--list" - -STATUS="Collecting information about /etc/rc.d:" -catiffile "/etc/rc.d" -/bin/ls /etc/rc.d/rc*.d/ > $ROOT/etc/rc.d/ls-output - -if [ -x /usr/sbin/lsof ] ; then - STATUS="Lists information about files opened (lsof)" - catifexec "/usr/sbin/lsof" "-b +M -n -l" -fi - -STATUS="Collecting interprocess communication facilities status" -catifexec "/usr/bin/ipcs" "-u" -catifexec "/usr/bin/ipcs" "-l" - -# check to see if we want to run rpm, under some circumstances -# rpm can hang and never complete -# yes, command line parsing needs some work -if [ "$NORPM" != "yes" ]; then - echo "Collecting information about currently installed packages:" - echo -n "This may take several minutes...." - /bin/rpm -qa --qf "%{NAME}-%{VERSION}-%{RELEASE}-%{ARCH}\n" > $ROOT/installed-rpms - /bin/rpm -Va > $ROOT/rpm-Va 2>&1 - echo_success -fi - -STATUS="Getting bootloader information:" -/bin/ls -alR /boot > $ROOT/ls-boot 2>&1 - -# This covers sparc, alpha, and intel (respectively) -# updated for grub -mpg -if [ -f /etc/silo.conf ]; then - STATUS="Collecting information about the boot process (silo):" - catiffile "/etc/silo.conf" -fi -if [ -f /etc/milo.conf ]; then - STATUS="Collecting information about the boot process (milo):" - catiffile "/etc/milo.conf" -fi -if [ -f /etc/lilo.conf ]; then - STATUS="Collecting information about the boot process (lilo):" - catiffile "/etc/lilo.conf" - catifexec "/sbin/lilo" "-q" -fi -if [ -d /boot/grub -a -f /boot/grub/grub.conf -a -f /boot/grub/device.map ]; then - STATUS="Collecting information about the boot process (grub.conf):" - catiffile "/boot/grub/grub.conf" - STATUS="Collecting information about the boot process (grub.map):" - catiffile "/boot/grub/device.map" -fi -if [ -f /etc/cluster.conf -o -f /etc/cluster.xml -o -f /etc/cluster/cluster.conf ] ; then - STATUS="Gathering information on cluster setup" - # 2.1 AS - if [ -f /etc/cluster.conf ] ; then - catiffile "/etc/cluster.conf" - fi - # Taroon - if [ -f /etc/cluster.xml ] ; then - catiffile "/etc/cluster.xml" - fi - # RHEL4 - if [ -d /etc/cluster ]; then - catiffile "/etc/cluster" - fi -fi -STATUS="Collecting init configuration:" -catiffile "/etc/inittab" - -STATUS="Collecting information about X:" -catiffile "/etc/X11" - -STATUS="Gathering sysctl information (/proc/sys):" -catifexec "/sbin/sysctl" "-a" -STATUS="Gathering sysctl information (/etc/sysctl.conf):" -catiffile "/etc/sysctl.conf" - -for x in `/bin/ls -d /etc/cron*` ; do - STATUS="Collecting information about cron ($(/bin/basename $x)):" - catiffile "$x" -done - -STATUS="Gathering Syslog config information:" -catiffile "/etc/syslog.conf" - -STATUS="Gathering ntp configuration (/etc/ntp.conf):" -catiffile "/etc/ntp.conf" -STATUS="Gathering ntp configuration (/etc/ntp/step-tickers):" -catiffile "/etc/ntp/step-tickers" -STATUS="Gathering ntp configuration (/etc/ntp/ntpservers):" -catiffile "/etc/ntp/ntpservers" - -STATUS="Gathering IP information (/sbin/ifconfig):" -catifexec "/sbin/ifconfig" "-a" - -STATUS="Checking network routes:" -catifexec "/sbin/route" "-n" - -STATUS="Collecting Name Service Switch config information:" -catiffile "/etc/nsswitch.conf" -STATUS="Collecting NIS client information:" -catiffile "/etc/yp.conf" - -STATUS="Collecting system configuration information:" -catiffile "/etc/sysconfig" -fixupfile 's/\(.*Password=\)\(.*\)/\1********/' $ROOT/etc/sysconfig/rhn/up2date - -STATUS="Collecting information about system authentication (pam):" -catiffile "/etc/pam.d" - -echo -echo "Getting information about the kernel." -echo -STATUS="Getting kernel version:" -catifexec "/bin/uname" "-a" -STATUS="Checking module information:" -catifexec "/sbin/lsmod" -for x in $(/sbin/lsmod | /bin/cut -f1 -d" " 2>/dev/null | /bin/grep -v Module 2>/dev/null ) ; do - STATUS="Checking module information $x:" - catifexec "/sbin/modinfo" "$x" -done - -STATUS="Currently getting ksysms information:" -catifexec "/sbin/ksyms" - -STATUS="Gathering information about your filesystems:" -catiffile "/proc/filesystems" - -STATUS="Gathering information about your system stat:" -catiffile "/proc/stat" - -STATUS="Gathering information about your partitions:" -catiffile "/proc/partitions" - -STATUS="Gathering information about your ksysms:" -catiffile "/proc/ksyms" - -STATUS="Gathering information about slabinfo:" -catiffile "/proc/slabinfo" - -# Added support to cover for the new modules.conf layout in Red Hat 7 -STATUS="Collecting information regarding kernel modules" -catiffile "/lib/modules/$VER/modules.dep" -if [ -f /etc/conf.modules ]; then - STATUS="Collecting information regarding kernel modules (conf.modules)" - catiffile "/etc/conf.modules" -fi -if [ -f /etc/modules.conf ]; then - STATUS="Collecting information regarding kernel modules (modules.conf)" - catiffile "/etc/modules.conf" -fi -if [ -f /etc/modprobe.conf ]; then - STATUS="Collecting information regarding kernel modules (modeprobe.conf)" - catiffile "/etc/modprobe.conf" -fi - -if [ "$DMIDECODE" == "yes" ] ; then - echo "Getting information about the hardware." - echo - if [ -x /usr/sbin/dmidecode ] ; then - STATUS="Gathering DMI information:" - catifexec "/usr/sbin/dmidecode" - fi -fi - -# dkms status -STATUS="Gathering current status of modules, versions and kernels (dkms):" -if [ -x /usr/sbin/dkms ] ; then - catifexec "/usr/sbin/dkms" "status" -fi - -if [ -f /etc/sysconfig/isdncard ] ; then - STATUS="Gathering information about ISDN:" - catiffile "/etc/sysconfig/isdncard" -fi - -STATUS="Collecting information from the proc directory:" -catiffile "/proc/pci" - -STATUS="Getting kernel command line" -catiffile "/proc/cmdline" - -STATUS="Gathering information about your CPU:" -catiffile "/proc/cpuinfo" - -STATUS="Gathering information about your Ram:" -catiffile "/proc/meminfo" - -STATUS="Gathering information about your ioports:" -catiffile "/proc/ioports" - -STATUS="Gathering information about your interrupts:" -catiffile "/proc/interrupts" - -STATUS="Gathering information about your scsi devices:" -catiffile "/proc/scsi" - -STATUS="Gathering information about your dma:" -catiffile "/proc/dma" - -STATUS="Gathering information about your devices (/proc/devices):" -catiffile "/proc/devices" - -STATUS="Gathering information about your rtc:" -catiffile "/proc/rtc" - -STATUS="Gathering information about your ide drivers:" -catiffile "/proc/ide" - -STATUS="Gathering information about your bus:" -getpciinfo > $ROOT/lspci -catiffile "/proc/bus" - -STATUS="Gathering info on udev configuration:" -catiffile "/etc/udev" - -echo -echo "Getting disk and filesystem information." -echo - -STATUS="Collecting information from /etc/fstab:" -catiffile "/etc/fstab" - -STATUS="Collecting disk partition information:" -PATH=/bin getpartinfo > $ROOT/fdisk-l - -STATUS="Checking mounted file systems (mount) " -catifexec "/bin/mount" - -STATUS="Checking mounted file systems (/proc/mounts)" -catiffile "/proc/mounts" - -STATUS="Collecting Software RAID information (/proc/mdstat)" -catiffile "/proc/mdstat" - -STATUS="Collecting Software RAID information (/etc/raidtab)" -catiffile "/etc/raidtab" - -STATUS="Collecting Software RAID information (/etc/mdadm.conf)" -catiffile "/etc/mdadm.conf" - -STATUS="Collecting Software RAID information (mdadm -D /dev/md*)" -catifexec "/sbin/mdadm" "-D /dev/md*" - -STATUS="Collecting Automount information (auto.master)" -catiffile "/etc/auto.master" - -STATUS="Collecting Automount information (auto.misc)" -catiffile "/etc/auto.misc" - -STATUS="Collecting Automount information (auto.net)" -catiffile "/etc/auto.net" - -STATUS="Collecting LVM information:" -catifexec "/usr/sbin/vgdisplay" "-vv" - -STATUS="Gathering LVM setup" -catiffile "/etc/lvm" - -STATUS="Collecting SCSI Tape information (/etc/stinit.def)" -catiffile "/etc/stinit.def" - -if [ -x /sbin/lsusb ] ; then - STATUS="Collecting USB devices list (lsusb):" - catifexec "/sbin/lsusb" -fi - -if [ -x /usr/bin/lshal ] ; then - STATUS="Collecting global devices list (lshal):" - catifexec "/usr/bin/lshal" -fi - -echo -echo "collecting information about commonly used network services" -echo -# This covers backwards compatiablity for systems with inetd while keeping -# support for the new 7.x xinetd -if [ -f /etc/inetd.conf ]; then - STATUS="Collecting information about system services (inetd.conf)" - catiffile "/etc/inetd.conf" -elif [ -f /etc/xinetd.conf ]; then - STATUS="Collecting information about system services (xinetd.conf)" - catiffile "/etc/xinetd.conf" - for x in `/bin/ls -d /etc/xinetd.d/*`; do - STATUS="Collecting information about system services ($(/bin/basename $x))" - catiffile "$x" - done -fi -for x in `/bin/ls -d /etc/host*` ; do - STATUS="Collecting information from $x:" - catiffile "$x" -done - -STATUS="Collecting information about the ftp servers:" -ftpconfigfiles=`/bin/ls -d /etc/ftp* /etc/vsftpd/* 2>/dev/null` -for x in $ftpconfigfiles; do - STATUS="Collecting information about the ftp servers ($(/bin/basename $x)):" - catiffile "$x" -done - -STATUS="Collecting information about ypbind configuration:" -catiffile "/etc/yp.conf" - -if [ "$FIREWALL" == "yes" ]; then - KERNELMIN=`/bin/uname -r | /bin/sed -e 's,[^\.]*\.,,' -e 's,\..*,,'` - ipchainsmod=`/sbin/lsmod 2>/dev/null| /bin/grep ipchains` - - if [ "$KERNELMIN" -lt 3 ] || [ -n "${ipchainsmod}" ] ; then - STATUS="Getting ipchains information:" - catifexec "/sbin/ipchains" "-nvL" - elif [ "$KERNELMIN" -gt 3 ]; then - STATUS="Getting iptables information:" - if [ -f /etc/sysconfig/iptables-config ] ; then - catiffile "/etc/sysconfig/iptables-config" - fi - STATUS="Getting iptables information (filter):" - catifexec "/sbin/iptables" "-t filter -nvL" - STATUS="Getting iptables information (mangle):" - catifexec "/sbin/iptables" "-t mangle -nvL" - STATUS="Getting iptables information (nat):" - catifexec "/sbin/iptables" "-t nat -nvL" - fi -fi - -# ldap client and server config -if [ -f /etc/ldap.conf ] ; then - STATUS="Getting LDAP configuration (ldap.conf)" - catiffile "/etc/ldap.conf" -fi -if [ -d /etc/openldap ] ; then - for x in `/bin/ls -d /etc/openldap/*` ; do - if [ -f $x ] ; then - STATUS="Getting LDAP configuration ($(/bin/basename $x))" - catiffile "$x" - fi - done -fi - -# ssh -STATUS="Getting ssh configuration (ssh_config)" -catiffile "/etc/ssh/ssh_config" -STATUS="Getting sshd configuration (sshd_config)" -catiffile "/etc/ssh/sshd_config" - -# sendmail -SENDMAIL_CF_FILE=/etc/mail/sendmail.cf -SENDMAIL_CW_FILE=/etc/mail/sendmail.cw - -if [ -f /etc/sendmail.cf ] ; then - SENDMAIL_CF_FILE=/etc/sendmail.cf -fi - -if [ -f /etc/sendmail.cw ] ; then - SENDMAIL_CW_FILE=/etc/sendmail.cw -fi - -STATUS="Sendmail Configuration ($SENDMAIL_CF_FILE):" -catiffile "$SENDMAIL_CF_FILE" -if [ -f $SENDMAIL_CW_FILE ]; then - STATUS="Sendmail Machine aliases ($SENDMAIL_CW_FILE):" - catiffile "$SENDMAIL_CW_FILE" -fi - -STATUS="Sendmail User aliases (/etc/aliases):" -catiffile "/etc/aliases" - -for f in `/bin/ls -d /etc/mail/* | /bin/grep -v \.db`; do - STATUS="Getting files from ($(/bin/basename $f))" - catiffile $f -done - -STATUS="Collecting Postfix Configuration (main.cf)" -catiffile "/etc/postfix/main.cf" - -STATUS="Collecting Postfix Configuration (master.cf)" -catiffile "/etc/postfix/master.cf" - -STATUS="Collecting exim configuration directory" -catiffile "/etc/exim" - -STATUS="Collecting host resolution information" -catiffile "/etc/resolv.conf" - -# Make sure we have support for both versions of bind -if [ -f /etc/named.boot ]; then - STATUS="Collecting information about the nameserver (named.boot)" - catiffile "/etc/named.boot" -elif [ -f /etc/named.conf ]; then - STATUS="Collecting information about the nameserver (named.conf)" - catiffile "/etc/named.conf" -fi - -DNSDIR="" -if [ -f /etc/named.conf ]; then - DNSDIR=$(/bin/grep -i directory /etc/named.conf |/bin/gawk '{ print $2 ;}'|\ - /bin/sed s/\"//g|/bin/sed s/\;//g) -elif [ -f /etc/named.boot ]; then - DNSDIR=$(/bin/grep -i directory /etc/named.boot|/bin/gawk '{ print $2 ;}') -fi - -if [ -n "$DNSDIR" -a -d "$DNSDIR" ]; then - STATUS="Collecting information about the nameserver ($DNSDIR)" - catiffile "$DNSDIR" -fi - -if [ -f /etc/exports ] ; then - STATUS="Collecting information about the NFS:" - catiffile "/etc/exports" -fi - -SAMBADIR="/etc/samba" -if [ -d $SAMBADIR ]; then - STATUS="Getting samba informations ($SAMBADIR)" - for x in `/bin/ls -d $SAMBADIR/* | grep -vE 'smbpasswd|secrets\.tdb|\.bak|\.rpmnew'` ; do - STATUS="Getting samba informations ($(/bin/basename $x))" - catiffile "$x" - done - /bin/ls -alR $SAMBADIR > $ROOT/ls-samba 2>&1 - if [ -x /usr/bin/wbinfo ] ; then - STATUS="Getting samba informations (wbinfo -g):" - catifexec "/usr/bin/wbinfo" "-g" - STATUS="Getting samba informations (wbinfo -u):" - catifexec "/usr/bin/wbinfo" "-u" - fi -fi - -STATUS="Getting /etc/securetty" -catiffile "/etc/securetty" - -STATUS="Getting /etc/shells" -catiffile "/etc/shells" - -STATUS="Getting ulimit info" -catiffile "/etc/security/limits.conf" - -STATUS="Getting nscd configuration" -catiffile "/etc/nscd.conf" - -STATUS="Getting Kerberos informations (/etc/krb5.conf)" -catiffile "/etc/krb5.conf" - -STATUS="Getting Kerberos informations (/etc/krb.conf)" -catiffile "/etc/krb.conf" - -STATUS="Getting Kerberos informations (/etc/krb.realms)" -catiffile "/etc/krb.realms" - -STATUS="Getting information about apache" -catiffile "/etc/httpd/conf/httpd.conf" - -for x in `/bin/ls -d /etc/httpd/conf.d/*.conf 2>/dev/null` ; do - STATUS="Getting information about apache ($(/bin/basename $x))" - catiffile "$x" -done - -STATUS="Getting information about squid" -catiffile "/etc/squid/squid.conf" - -STATUS="Getting information about CUPS" -for x in `/bin/ls -d /etc/cups/*.conf 2>/dev/null` ; do - STATUS="Getting information about CUPS ($x)" - catiffile "$x" -done - -echo -echo "Gathering information from system logs" -echo -STATUS="Collecting information from dmesg:" -catiffile "/var/log/dmesg" - -if [ "$SYSRQ_TRIGGER" == "yes" ]; then - STATUS="Collecting information from /proc/sysrq-trigger" - if [ -f /proc/sysrq-trigger -a -f /proc/sys/kernel/sysrq ] ; then - sysr_state="$(/bin/cat /proc/sys/kernel/sysrq)" - echo 1 > /proc/sys/kernel/sysrq - for key in m p t ; do - echo $key > /proc/sysrq-trigger - done - echo $sysr_state > /proc/sys/kernel/sysrq - fi -fi - -for x in `/bin/ls /var/log/messages*` ; do - STATUS="Collecting messages files ($x)" - catiffile "$x" -done -for x in `/bin/ls /var/log/maillog*` ; do - STATUS="Collecting maillog files ($x)" - catiffile "$x" -done - - -STATUS="Collecting information (/var/log/sa)" -catiffile "/var/log/sa" - -for x in `/bin/ls -d /var/log/Xorg.*.log /var/log/XFree86.*.log 2>/dev/null` ; do - STATUS="Collecting X logs ($x)" - catiffile "$x" -done - -STATUS="Collecting information (/var/log/rpmpkgs)" -catiffile "/var/log/rpmpkgs" - -STATUS="Collecting information (/var/log/boot.log)" -catiffile "/var/log/boot.log" - -STATUS="Collecting information (/var/log/up2date)" -catiffile "/var/log/up2date" - -STATUS="Collecting information (/var/log/secure)" -catiffile "/var/log/secure" - -STATUS="Collecting log files from Apache" -catiffile "/var/log/httpd" - -STATUS="Collecting log files from RHN" -if `/bin/ls /var/log/rhn* >& /dev/null` ; then - catiffile "/var/log/rhn*" -fi - -# General monitoring moc logs -if [ -d /opt/notification ] ; then - for x in `/bin/ls -d /opt/notification/var/*.log* 2>/dev/null` ; do - STATUS="Collecting monitoring moc logs ($(/bin/basename $x))" - catiffile "$x" - done - for x in `/bin/ls -d /var/tmp/ack_handler.log* 2>/dev/null` ; do - STATUS="Collecting monitoring moc logs ($(/bin/basename $x))" - catiffile "$x" - done - for x in `/bin/ls -d /var/tmp/enqueue.log* 2>/dev/null` ; do - STATUS="Collecting monitoring moc logs ($(/bin/basename $x))" - catiffile "$x" - done -fi - -# monitoring scout logs -if [ -d /home/nocpulse/var ] ; then - for x in `/bin/ls -d /home/nocpulse/var/*.log* 2>/dev/null` ; do - STATUS="Collecting monitoring scout logs ($(/bin/basename $x))" - catiffile "$x" - done - for x in `/bin/ls -d /home/nocpulse/var/commands/*.log* 2>/dev/null` ; do - STATUS="Collecting monitoring scout logs ($(/bin/basename $x))" - catiffile "$x" - done -fi - -/bin/echo -/bin/echo "Getting information about RHN" -/bin/echo -RHNDIR=/etc/sysconfig/rhn -/bin/mkdir -p $ROOT/$RHNDIR 2>/dev/null -catiffile "/etc/rhn" -if [ -f $RHNDIR/systemid ] ; then - echo -n "Gathering systemid information:" - if [ -x /usr/bin/xsltproc ] ; then - /usr/bin/xsltproc $UTILDIR/text.xsl $RHNDIR/systemid > $ROOT/$RHNDIR/systemid 2>/dev/null - echo_success - else - catiffile "$RHNDIR/systemid" - fi -fi - -# Get hardware profile information (for verification with system state and RHN) -if [ -x /usr/share/rhn/up2date_client/hardware.py ] ; then - STATUS="Gathering RHN hardware profile information" - catifexec /usr/share/rhn/up2date_client/hardware.py -fi -if [ -x /usr/bin/rhn-schema-version ] ; then - STATUS="Gathering schema version" - catifexec "/usr/bin/rhn-schema-version" -fi -if [ -x /usr/bin/rhn-charsets ] ; then - STATUS="Gathering database charactersets" - catifexec "/usr/bin/rhn-charsets" -fi - -# Get SELinux information -echo -echo "Gathering information on SELinux setup" -echo -catifexec "/usr/bin/selinuxconfig" -catifexec "/usr/sbin/sestatus" -catifexec "rpm" "-q -V selinux-policy-targeted" -catifexec "rpm" "-q -V selinux-policy-strict" - -cd $TEMPDIR -/bin/echo -/bin/echo -n "Please enter your case number (if you have one): " - -while read CASENUM -do - case $CASENUM in - *[^0-9]*) - /bin/echo -e "\nError: Your input contains non-numeric characters!" - /bin/echo -e "Please enter your case number (if you have one): " - ;; - *) - break ;; - esac -done -if [ ! $CASENUM ]; then - NAME=$PROGNAME-$HOSTNAME.$DATE -else - NAME="$PROGNAME-$HOSTNAME-$CASENUM.$DATE" -fi -/bin/rm -Rf $NAME -/bin/mv $ROOT $NAME -/bin/tar Scf $NAME.tar $NAME -if [ -x /usr/bin/bzip2 ]; then - /usr/bin/bzip2 $NAME.tar - SUFFIX="tar.bz2" -else - /bin/gzip -9 $NAME.tar - SUFFIX="tar.gz" -fi - -/bin/rm -Rf $NAME -/bin/echo -/bin/echo "Please send $TEMPDIR/${NAME}.${SUFFIX} to your support" -/bin/echo "representative." -/bin/echo - -exit 0 diff --git a/src/extras/sysreport/text.xsl b/src/extras/sysreport/text.xsl deleted file mode 100644 index c381b3a8..00000000 --- a/src/extras/sysreport/text.xsl +++ /dev/null @@ -1,33 +0,0 @@ -<?xml version='1.0'?> -<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" - version='1.0'> - -<xsl:output method="text" indent="no"/> - -<xsl:template match="array"> - <xsl:text>[</xsl:text> - <xsl:for-each select="data/value"> - <xsl:apply-templates/> - <xsl:if test="following-sibling::value"> - <xsl:text>, </xsl:text> - </xsl:if> - </xsl:for-each> - <xsl:text>] </xsl:text> -</xsl:template> - -<xsl:template match="string"> - <xsl:value-of select="."/> -</xsl:template> - -<xsl:template match="member"> - <xsl:value-of select="name"/> - <xsl:text>: </xsl:text> - <xsl:apply-templates select="value"/> - <xsl:text> </xsl:text> -</xsl:template> - -<xsl:template match="/"> - <xsl:apply-templates select=".//member"/> -</xsl:template> - -</xsl:stylesheet> |