On Mon, 11 Mar 2002, David Douthitt wrote: > On 3/11/02 at 1:46 AM, Matt Schalit <[EMAIL PROTECTED]> wrote: > > > guitarlynn wrote: > > > The section below needs a little more work. The syntax shown > > will overwrite forward.txt. > > > > cp /var/log/messages /mnt/messages.txt > > ip addr show > /mnt/address.txt > > ipchains -nvL > /mnt/filter.txt > > /usr/sbin/ipmasqadm mfw -nL > /mnt/forward.txt > > /usr/sbin/ipmasqadm portfw -nl > /mnt/forward.txt > > cat /proc/net/ip_masq/autofw > /mnt/forward.txt > > > > And I request again that you add in > > > > ip route show > /mnt/routes.txt > > > > and remove the netstat -rn, only because ip route show > > is on every distro (correct?) > > Not really.... May I recommend:
If you _are_ going to make a script, all sorts of options are available. As I said before, the problem is that it will have to be made easy to install... packaged, I guess. Not insurmountable, but I still like instructions that encourage people to examine their own diagnostics. > ( echo "Messages log\n" echo doesn't process escapes unless told to. > cat /var/log/messages > echo > > if which ip 2> /dev/null ; then > ip addr show > echo > ip route show > else > ifconfig -a > echo > netstat -rn > fi The idea of using tests to distinguish which set of diagnostic utilities to use is slick. I did notice that this fails to inform the reader which commands were in fact executed, and sequence can't really be relied on unless everyone agrees what it should be. [...] > > ) > /tmp/sysdata.txt See attached for further development of this concept... > This has several advantages: > > 1. Single file at the end for details - /tmp/sysdata.txt - just attach > and mail. If you use "matt" (new package to attach files to mail!) > you can even mail it right from the box. I prefer to be able to specify output destination. This may be undesirable from the point of view of teaching the uninitiated how to use it, but I think the trade is worth it. > 2. Testing for existance of programs allows clean execution in even > the most spartan (or odd) environments. No ip? No problem. No > ipchains? No problem.... Of course, you are stuck if your system doesn't have "which" :) > 3. Using a single file saves some space (constant redirections and > filenames). Of course, with all the testing (using which) the end > result is more bytes - but it's worth it, I think. But functions can reduce this a bit. Disclaimers: My modifications have been tested on a frankenstein 2.2.19 LRP 2.9.8. I have not really reviewed the set of diagnostics for completeness yet. For example, lsmod probably ought to be included. Perhaps "cat /etc/issue" ought to be included as well. Diagnostics from multiple participating machines are often needed to troubleshoot actual networking problems, and the choices encoded in a script like this one may have to be manually applied by the user to other operating systems before a meaningful solution can be found. --------------------------------------------------------------------------- Jeff Newmiller The ..... ..... Go Live... DCN:<[EMAIL PROTECTED]> Basics: ##.#. ##.#. Live Go... Live: OO#.. Dead: OO#.. Playing Research Engineer (Solar/Batteries O.O#. #.O#. with /Software/Embedded Controllers) .OO#. .OO#. rocks...2k ---------------------------------------------------------------------------
#!/bin/sh # file : leafinfo # by : David Douthitt (DD) # Jeff Newmiller (JDN) myw() { unalias -a # unset may not work right for filenames beginning with "-", but # ash does not have the "--" option terminator. unset "$@" &> /dev/null # ash has no "enable" command... take chances with builtins # enable -n -- "$@" &> /dev/null # ash has no "-p" option for "type" builtin command type "$@" | sed "/not found/d;s/.*\( \)\([^ ]*\)$/\2/" } docmd() { echo "###BEGIN################################################################" echo "## \"$@\" ##" eval "$@" echo -e "###END##################################################################\n" } ( echo "## BEGIN REPORT ##" echo -e "Generated by: leafinfo v0.1\n" docmd "uname -a" docmd "cat /var/log/messages" if [ `myw ip` ]; then docmd "ip addr show" docmd "ip route show" else docmd "ifconfig -a" docmd "netstat -rn" fi if [ `myw ipchains` ]; then docmd "ipchains -L -v -n" else docmd "iptables -L -v -n" fi if [ `myw ipmasqadm` ]; then docmd "ipmasqadm mfw -L -n" docmd "ipmasqadm portfw -n -l" docmd "cat /proc/net/ip_masq/autofw" fi echo echo "## END REPORT ##" ) 2>&1