#!/bin/sh # Copyright (C) 2014 Curt Brune # # SPDX-License-Identifier: GPL-2.0 # Make a tarball of "interesting" system info. This could be used by # an installer to gather system info, saving it to document the # install. output_dir=$1 [ -d "$output_dir" ] || { echo "Error: Output directory does not exist: $output_dir" echo "Usage: $0 " exit 1 } support_arch() { save_dir="$1" # NO-OP } support_platform() { save_dir="$1" # NO-OP } [ -r /lib/onie/support-arch ] && . /lib/onie/support-arch [ -r /lib/onie/support-platform ] && . /lib/onie/support-platform [ -r /lib/onie/functions ] && . /lib/onie/functions cleanup() { umount $tmpdir > /dev/null 2>&1 rm -rf $tmpdir exit $1 } tmpdir=$(mktemp -d) mount -t tmpfs tmpfs $tmpdir || { echo "Error: Unable to mount tmpfs." cleanup 1 } onie_support_name="onie-support-${onie_machine}.tar.bz2" tarfile="$output_dir/$onie_support_name" tar_dir="onie-support-${onie_machine}" save_dir="$tmpdir/$tar_dir" rm -rf $save_dir mkdir -p $save_dir || { echo "Error: Unable to create onie save directory: $save_dir" cleanup 1 } cp -a /var/log $save_dir cat /proc/cmdline > $save_dir/kernel_cmdline.txt export > $save_dir/runtime-export-env.txt set > $save_dir/runtime-set-env.txt ps w > $save_dir/runtime-process.txt dmesg > $save_dir/dmesg.txt if [ -x /usr/bin/onie-syseeprom ] ; then onie-syseeprom > $save_dir/onie-syseeprom.txt fi onie-sysinfo -a > $save_dir/onie-sysinfo.txt cp /etc/machine*.conf $save_dir blkid > $save_dir/blkid.txt fdisk -l > $save_dir/fdisk.txt support_arch support_platform tar -C $tmpdir -cjf $tarfile $tar_dir || { echo "Error: Unable to create ONIE save tar file: $tarfile" cleanup 1 } echo "Success: Support tarball created: $tarfile" cleanup 0