Sponsored Content
Top Forums Shell Programming and Scripting "SCRIPT" (recording session) from ShellScripts Post 58638 by kduffin on Saturday 27th of November 2004 08:28:50 AM
Old 11-27-2004
Normally, when you use script it shows not just the output, but the commands that were run to get the output. Here's another alternative that won't require you to recode in order to print every command and its output.

Add the following to the top and bottom of your script:

Code:
set -x
...
set +x

When you run your script, use the 'tee' command and redirect stderr to stdout. For example, if I had some script called test.sh:

Code:
#!/bin/sh
# test.sh
set -x
echo hello
ls -ld /etc/hosts
echo goodbye
set +x

And I wanted everything that it did and saw outputed to test.log:

Code:
$ ./test.sh 2>&1 | tee test.log
+ echo hello
hello
+ ls -ld /etc/hosts
lrwxrwxrwx   1 root     root          12 Apr 17  2002 /etc/hosts -> ./inet/hosts
+ echo goodbye
goodbye
$ 
$ cat test.log
+ echo hello
hello
+ ls -ld /etc/hosts
lrwxrwxrwx   1 root     root          12 Apr 17  2002 /etc/hosts -> ./inet/hosts
+ echo goodbye
goodbye
$

Cheers,

Keith
 

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Q: Recording shell script screen output using "script" command ?

Hello, I need to capture everything showed on a screen by a shell script which needs user interaction. The shell script performs commads such as rsh so normal redirection to a file does not work. I know there is a special unix command call "script" which records screen session but the... (4 Replies)
Discussion started by: lalfonso.gomez
4 Replies

2. UNIX for Dummies Questions & Answers

Explain the line "mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'`"

Hi Friends, Can any of you explain me about the below line of code? mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'` Im not able to understand, what exactly it is doing :confused: Any help would be useful for me. Lokesha (4 Replies)
Discussion started by: Lokesha
4 Replies

3. Shell Programming and Scripting

awk command to replace ";" with "|" and ""|" at diferent places in line of file

Hi, I have line in input file as below: 3G_CENTRAL;INDONESIA_(M)_TELKOMSEL;SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL My expected output for line in the file must be : "1-Radon1-cMOC_deg"|"LDIndex"|"3G_CENTRAL|INDONESIA_(M)_TELKOMSEL"|LAST|"SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL" Can someone... (7 Replies)
Discussion started by: shis100
7 Replies

4. Linux

Session "hijacking" - Recover lost session

Hi Guys, Is there a way to recover a lost session? I was working in a server and that lost the connection, now, I have a new session but all the previous processes that I was running, like scripts, etc, are still running. Is there a way to bring them to my session? Best regards, Marco. (4 Replies)
Discussion started by: ocramas
4 Replies

5. Cybersecurity

"authentication failure" then "session opened". Why?

Ssh connections using shared public keys issue “authentication failure” messages, then succeed with “session opened”. I have found a few other threads with similar issue, but no solutions offered. :wall: How can I eliminate the failure messages? Environment: $ uname -a Linux... (0 Replies)
Discussion started by: KennyCason
0 Replies

6. UNIX for Dummies Questions & Answers

"Help with bash script" - "License Server and Patch Updates"

Hi All, I'm completely new to bash scripting and still learning my way through albeit vey slowly. I need to know where to insert my server names', my ip address numbers through out the script alas to no avail. I'm also searching on how to save .sh (bash shell) script properly.... (25 Replies)
Discussion started by: profileuser
25 Replies

7. UNIX for Dummies Questions & Answers

Using "mailx" command to read "to" and "cc" email addreses from input file

How to use "mailx" command to do e-mail reading the input file containing email address, where column 1 has name and column 2 containing “To” e-mail address and column 3 contains “cc” e-mail address to include with same email. Sample input file, email.txt Below is an sample code where... (2 Replies)
Discussion started by: asjaiswal
2 Replies

8. Shell Programming and Scripting

Bash script - Print an ascii file using specific font "Latin Modern Mono 12" "regular" "9"

Hello. System : opensuse leap 42.3 I have a bash script that build a text file. I would like the last command doing : print_cmd -o page-left=43 -o page-right=22 -o page-top=28 -o page-bottom=43 -o font=LatinModernMono12:regular:9 some_file.txt where : print_cmd ::= some printing... (1 Reply)
Discussion started by: jcdole
1 Replies

9. AIX

Apache 2.4 directory cannot display "Last modified" "Size" "Description"

Hi 2 all, i have had AIX 7.2 :/# /usr/IBMAHS/bin/apachectl -v Server version: Apache/2.4.12 (Unix) Server built: May 25 2015 04:58:27 :/#:/# /usr/IBMAHS/bin/apachectl -M Loaded Modules: core_module (static) so_module (static) http_module (static) mpm_worker_module (static) ... (3 Replies)
Discussion started by: penchev
3 Replies
MUSSH(1)							   MUltihost SSH							  MUSSH(1)

NAME
mussh - MUltihost SSH SYNOPSIS
mussh [ OPTIONS ] <-h host... | -H hostfile > [-c cmd ] [-C scriptfile ] DESCRIPTION
mussh is a shell script that allows you to execute a command or script over ssh(1) on multiple hosts with one command. When possible mussh will use ssh-agent(1) and RSA/DSA keys to minimize the need to enter your password more than once. OPTIONS
--help Prints full help text. -d Same as -d 1 -d 0 Turns debug mode off. -d 1 On STDERR prints out basic actions and ssh-agent activity and which host is being connected to. -d 2 Includes all of the output from -d1, the list of hosts, the command/script as it will be executed on each host, and a lot more. -v Same as -v 1 -v 1 Sets ssh in debug1 mode by passing "-v" to ssh. -v 2 Sets ssh in debug2 mode by passing "-v -v" to ssh. -v 3 Sets ssh in debug3 mode by passing "-v -v -v" to ssh. -m [n] Run concurrently on 'n' hosts at a time (asynchronous). Use '0' (zero) for infinite. (default) -q No output unless necessary. This will cancel -d and -v if after them on the command line. It also suppresses the output of each host. This will NOT suppress the password/passphrase prompts required to log into each host. -i <identity> [identity ..] Load an identity file. When -i is used, the specified identity file(s) is loaded instead of the default identity. You can load as many RSA/DSA identities as you'd like. -o <ssh-args> Args to pass to ssh with -o option. See the ssh(1) man page for more info on the -o option. -a Force loading ssh-agent. Without this flag, mussh will not load another agent when one is already loaded. -A Do NOT load ssh-agent. If no agent is loaded you will be prompted for a password or passphrase by ssh for each host. If you do not have RSA/DSA keys for the destination hosts, this will save you some hassle. -b Print each hosts' output in a block without mingling with other hosts' output. -B Allow hosts' output to mingle. (default) -u Unique. Eliminate duplicate hosts. (default) If you a host or user@host occurs more than once across files specified with -H or hosts specified with -h, the host or user@host is used only once. -U Do NOT make host list unique. This simply overrides the -u flag. This will cause scripts to be executed on duplicate hosts once per listing. -P Do NOT fall back to passwords on any host. This will skip hosts where keys fail. If you use this with '-d' you'll still see which hosts failed. -l <login> Use 'login' when no other is specified with hostname. -L <login> Force use of 'login' name on all hosts. These can be handy for adding 'root@' to hostnames kept in a file for -H option. With -h it means you get to type less. -s <shell> Path to shell on remote host. (Default: bash) -t <secs> Timeout setting for each session. (requires openssh 3.8 or newer) -V Print version info and exit. PROXY ARGS
-p [user@]<host> Host to use as proxy. (Must have mussh installed) -po <ssh-args> Args to pass to ssh on proxy with -o option. HOST ARGS
-h [user@]<host> [[user@]<host> ..] Add a host to list of hosts. May be used more than once. -H <file> [file ..] Add contents of file(s) to list of hosts. Files should have one host per line. Use "#" for comments. COMMAND ARGS
If neither is specified, commands will be read from standard input. -c <command> Add a command or quoted list of commands and args to list of commands to be executed on each host. May be used more than once. -C <file> [file ..] Add file contents to list of commands to be executed on each host. May be used more than once. PROXY MODE
When proxying, mussh can use a single remote server to as a bastion host. All hosts will be connected to from the central host rather than from the computer where you are initially running mussh. This can be handy when you only have access to one machine behind a firewall. The proxy host must have OpenSSH 2.3 or greater, or an sshd that works with ForwardAgent under ssh2. Proxy server must also have mussh installed in your PATH. To verify that it is in your path use "ssh user@proxy 'which mussh'". Use "ssh user@proxy 'echo $PATH'" to deter- mine what your path is. SSH-AGENT INTERACTION Assuming that you're not turning off the agent with '-A' mussh will attempt to use ssh-agent(1). Normally mussh will get rid of the agent when it exits. See EXAMPLES for examples. EXAMPLES
There is an EXAMPLES file with detailed examples. The basic command: $ mussh -h foo bar baz A simple command: $ mussh -h foo bar baz -c 'rpm -e emacs' A simple command asynchronously: $ mussh -h foo bar baz -c 'rpm -e emacs' -m Using a specific key: $ mussh -h foo bar baz -c 'rpm -e emacs' -i ~/.ssh/my_other.key Loading a list of hosts from a file: $ mussh -H /tmp/hostlist.txt -c 'rpm -e emacs' Loading a script from a file: $ mussh -h foo bar baz -C /tmp/scriptfile.sh BUGS
Please report any bugs at http://sourceforge.net/projects/mussh/ AUTHOR
Dave Fogarty <doughnut at doughnut dot net> SEE ALSO
ssh(1), ssh-agent(1) Doughnut August 2005 MUSSH(1)
All times are GMT -4. The time now is 06:06 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy