Sponsored Content
Top Forums Shell Programming and Scripting How do I capture multiple lines of the status output of a command? Post 302326858 by zzz1528 on Friday 19th of June 2009 04:02:46 AM
Old 06-19-2009
How do I capture multiple lines of the status output of a command?

I need to know what the upload speed of an Internet connection. I thought the easiest way to do this would be to transfer a file via FTP to my server using the command:
Code:
sh-3.2$ ftp -u ftp://username:password@computerdomain/directory/ file_to_be_uploaded

Note: My environment allows me to issue ONLY 1 line of code. That line of code can have multiple commands seperated by a semi-colon( ; ).

The above command works great in terminal. It uploads the file and gives me lots of text to tell me what is going on:
Quote:
230 User username logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
200 Type set to I.
250 CWD command successful.
local: file_to_be_uploaded remote: file_to_be_uploaded
502 'EPSV': command not understood.
227 Entering Passive Mode (69,13,207,4,232,153)
150 Opening BINARY mode data connection for .
100% |*************************************| 905 KB 200.51 KB/s 00:00 ETA
226 Transfer complete.
927204 bytes sent in 00:05 (173.23 KB/s)
I'm after that last line in the form:
x bytes sent in mm:ss (y KB/s)

I want to obtain the value for y. I thought the way to do this would be to send the output to a text file:
Code:
sh-3.2$ ftp -u ftp://username:password@computerdomain/directory/ file_to_be_uploaded > ftpupload.txt

Problem is, all I get in ftpupload.txt is a previous line that has some useless error on it:
Quote:
502 'EPSV': command not understood.
How can I get the contents of the last line so I know what the upload throughput is?

OR, can someone tell me a better way to do this?

Rob
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

[csh] How to capture output from a command and pass it on to a variable?

Hi there! I'm trying to write a script that will capture output from a command and assign it to a variable. Let's say, for example, I'd like to catch from inside the script whatever the following command outputs: ls *.aaa and put it into a variable "listoffiles". What I tried was: set... (3 Replies)
Discussion started by: machinogodzilla
3 Replies

2. Shell Programming and Scripting

Find multiple patterns on multiple lines and concatenate output

I'm trying to parse COBOL code to combine variables into one string. I have two variable names that get literals moved into them and I'd like to use sed, awk, or similar to find these lines and combine the variables into the final component. These variable names are always VAR1 and VAR2. For... (8 Replies)
Discussion started by: wilg0005
8 Replies

3. Solaris

How to capture only some part of output when command executed??

Hi, When I execute this command prtdiag -v output sample : System clock frequency: 160 MHZ Memory size: 4GB ==================================== CPUs ==================================== E$ CPU CPU CPU Freq Size ... (4 Replies)
Discussion started by: vijaysachin
4 Replies

4. Shell Programming and Scripting

Enter the command to capture output--help

&& echo "PLEASE enter the command to capture output" || echo "Processing your command manual" x=$# echo $x while do while man $@ | read -r line do >$@.txt ... (1 Reply)
Discussion started by: rrd1986
1 Replies

5. UNIX for Dummies Questions & Answers

grep command to find multiple strings in multiple lines in a file.

I want to search files (basically .cc files) in /xx folder and subfolders. Those files (*.cc files) must contain #include "header.h" AND x() function. I am writing it another way to make it clear, I wanna list of *.cc files that have 'header.h' & 'x()'. They must have two strings, header.h... (2 Replies)
Discussion started by: ritikaSharma
2 Replies

6. Solaris

How to capture Output of truus command

Hi I want to check if some process is sleeping. I can see that in truss -p <pid> I want to capture output and check that output if proces sis sleeping. Please suggest way to capture output of truss command or other way to check if process is sleeping (1 Reply)
Discussion started by: ankush_mehra
1 Replies

7. UNIX for Dummies Questions & Answers

Capture Multiple Lines Into Variable As Of Standard Output

Hello All, I have the below script and output. cat test.sh #!/bin/bash -x logit() { echo " - ${*}" > ${LOG_FILE} } LOG_FILE=/home/infrmtca/bin/findtest.log VAR=`find . -type f -name "*sql"` logit $VAR Output: cat /home/infrmtca/bin/findtest.log -... (9 Replies)
Discussion started by: Ariean
9 Replies

8. Shell Programming and Scripting

Capture output of command triggered in background

Is there any way to trigger a sequence of commands in parallel and capture their output in variables? e.g. something on the following lines x=`echo "X" &` y=`echo "Y" &` z=`echo "Z" &` so that $x, $y, and $z evaluate to X, Y and Z res. (7 Replies)
Discussion started by: jawsnnn
7 Replies

9. HP-UX

How capture all user command line output?

Hi I want to know how capture all user command line output and save this commands and outputs to text files? if you have script for this subject please give me.:o please help me thank you (6 Replies)
Discussion started by: amvhd
6 Replies

10. Programming

Python Paramiko multi threading to capture all output for command applied in loop

My issue : I am getting only last command output data in ouput file. Though comamnd "print(output)" displays data for all 3rd column values but the data saved in file is not what required it hs to be the same which is being printed by command"print(output)". Could you please help me to fix this,... (0 Replies)
Discussion started by: as7951
0 Replies
ncftpput(1)						      General Commands Manual						       ncftpput(1)

NAME
ncftpput - Internet file transfer program for scripts SYNOPSIS
ncftpput [options] remote-host remote-directory local-files... ncftpput [options] bookmark-name remote-directory local-files... ncftpput -f login.cfg [options] remote-directory local-files... ncftpput -c remote-host remote-path-name < stdin ncftpput -C remote-host local-path-name remote-path-name OPTIONS
Command line flags: -u XX Use username XX instead of anonymous. -p XX Use password XX with the username. -P XX Use port number XX instead of the default FTP service port (21). -j XX Use account XX in supplement to the username and password (deprecated). -d XX Use the file XX for debug logging. -a Use ASCII transfer type instead of binary. -m Attempt to make the remote destination directory before copying. -t XX Timeout after XX seconds. -U XX Use value XX for the umask. -v/-V Do (do not) use progress meters. The default is to use progress meters if the output stream is a TTY. -f XX Read the file XX for host, user, and password information. -c Read locally from standard input and write remotely to specified pathname. -C Similar to -c, except a local pathname is specified. -A Append to remote files, instead of overwriting them. -T XX Upload into temporary files prefixed by XX. -S XX Upload into temporary files suffixed by XX. -R Recursive mode; copy whole directory trees. -r XX Redial a maximum of XX times until connected to the remote FTP server. -z/-Z Do (do not) try to resume transfers. The default is to not try to resume (-Z). -E Use regular (PORT) data connections. -F Use passive (PASV) data connections. The default is to use passive, but to fallback to regular if the passive connection fails or times out. -DD Delete local file after successfully uploading it. -y Try using "SITE UTIME" to preserve timestamps on remote host. Not many remote FTP servers support this, so it may not work. -b Run in background (by submitting a batch job and then spawning ncftpbatch). -bb Similar to -b option, but only submits the batch job. You will need to run ncftpbatch for the batch job to be processed. This is useful if you already have a ncftpbatch process running, or wish to have better control of when batch jobs are processed. For example, if you wanted to do background processing of three files all on the same remote server, it is more polite to use just one ncftpbatch process to process the three jobs sequentially, rather than having three ncftpbatch processes open three simultane- ous FTP sessions to the same server. -B XX Try setting the TCP/IP socket buffer size to XX bytes. -W XX Send raw FTP command XX after logging in. -X XX Send raw FTP command XX after each file transferred. -Y XX Send raw FTP command XX before logging out. The -W, -X, and -Y options are useful for advanced users who need to tweak behavior on some servers. For example, users accessing mainframes might need to send some special SITE commands to set blocksize and record format information. For these options, you can use them multiple times each if you need to send multiple commands. For the -X option, you can use the cookie %s to expand into the name of the file that was transferred. -o XX Set advanced option XX. This option is used primarily for debugging. It sets the value of an internal variable to an integer value. An example usage would be: -o useFEAT=0,useCLNT=1 which in this case, disables use of the FEAT command and enables the CLNT command. The available variables include: usePASV, useSIZE, useMDTM, useREST, useNLST_a, useNLST_d, useFEAT, useMLSD, useMLST, useCLNT, useHELP_SITE, useSITE_UTIME, STATfileParamWorks, NLSTfileParamWorks, require20, allowProxyForPORT, doNotGetStartCWD. DESCRIPTION
The purpose of ncftpput is to do file transfers from the command-line without entering an interactive shell. This lets you write shell scripts or other unattended processes that can do FTP. It is also useful for advanced users who want to send files from the shell command line without entering an interactive FTP program such as ncftp. By default the program tries to open the remote host and login anonymously, but you can specify a username and password information. The -u option is used to specify the username to login as, and the -p option is used to specify the password. If you are running the program from the shell, you may omit the -p option and the program will prompt you for the password. Using the -u and -p options are not recommended, because your account information is exposed to anyone who can see your shell script or your process information. For example, someone using the ps program could see your password while the program runs. You may use the -f option instead to specify a file with the account information. However, this is still not secure because anyone who has read access to the information file can see the account information. Nevertheless, if you choose to use the -f option the file should look something like this: host sphygmomanometer.ncftp.com user gleason pass mypassword Don't forget to change the permissions on this file so no one else can read them. The -d option is very useful when you are trying to diagnose why a file transfer is failing. It prints out the entire FTP conversation to the file you specify, so you can get an idea of what went wrong. If you specify the special name stdout as the name of the debugging out- put file, the output will instead print to the screen. Using ASCII mode is helpful when the text format of your host differs from that of the remote host. For example, if you are sending a text file from a UNIX system to a Windows-based host, you could use the -a flag which would use ASCII transfer mode so that the file created on the Windows machine would be in its native text format instead of the UNIX text format. You can upload an entire directory tree of files by using the -R flag. Example: $ ncftpput -R pikachu.nintendo.co.jp /incoming /tmp/stuff This would create a /incoming/stuff hierarchy on the remote host. The -T and -S options are useful when you want to upload file to the remote host, but you don't want to use the destination pathname until the file is complete. Using these options, you will not destroy a remote file by the same name until your file is finished. These options are also useful when a remote process on the remote host polls a specific filename, and you don't want that process to see that file until you know the file is finished sending. Here is an example that uploads to the file /pub/incoming/README, using the filename /pub/incom- ing/README.tmp as a temporary filename: $ ncftpput -S .tmp bowser.nintendo.co.jp /pub/incoming /a/README A neat way to pipe the output from any local command into a remote file is to use the -c option, which denotes that you're using stdin as input. The following example shows how to make a backup and store it on a remote machine: $ tar cf - / | ncftpput -c sonic.sega.co.jp /usr/local/backup.tar DIAGNOSTICS
ncftpput returns the following exit values: 0 Success. 1 Could not connect to remote host. 2 Could not connect to remote host - timed out. 3 Transfer failed. 4 Transfer failed - timed out. 5 Directory change failed. 6 Directory change failed - timed out. 7 Malformed URL. 8 Usage error. 9 Error in login configuration file. 10 Library initialization failed. 11 Session initialization failed. AUTHOR
Mike Gleason, NcFTP Software (http://www.ncftp.com). SEE ALSO
ncftpget(1), ncftp(1), ftp(1), rcp(1), tftp(1). LibNcFTP (http://www.ncftp.com/libncftp/). ncftpput NcFTP Software ncftpput(1)
All times are GMT -4. The time now is 06:08 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy