08-17-2005
perl... how to tell if a piped command is still running?
I'm using the fabulous perl. I need a way to tell when a piped call to "open" has completed. Can I do this with a command like <ShellPipe> ??
Reason behind this:
I'm trying to write a backup script in perl! This script will download a certain file from my web server, to my computer.
Now, this perl script calls wget something like this:
open( ShellPipe, "wget http://url.com" );
Is there some way to get wget to delete the file if the file download got interupted? Otherwise I'll have a partially downloaded backup!
My script is smart enough, that it will try again if the file doesn't exist, you see. But what if the download got interupted? Then a file will exist, and I'll have a bad backup.
I know it's unlikely to get interupted, but I like to take care and be very sure of these things
Also, my webserver does not tell me the size of the file to be downloaded. It tells you when there is no more data, though.
So for this reason, I just need to tell when the pipe has been completed.
9 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
grep $SEARCH_STRING /etc/passwd | cut -d":" -f 1,5
I need to check the $? value of grep in the above. If I place a test for $? after the above piped command, it returns success status of grep piped to cut.
How can I get the success status of grep alone? (5 Replies)
Discussion started by: krishmaths
5 Replies
2. Shell Programming and Scripting
I have following script
$cmd="ps -ef |";
open(PSINFO, $cmd) || die "Unable to get ps -ef information from System";
while running script with above lines, it is showing following err
ps: illegal option -- f
usage: ps (1 Reply)
Discussion started by: aju_kup
1 Replies
3. Shell Programming and Scripting
Hi All,
I want to execute a piped command like 'ls /opt | grep xml' using array as parameters list. How can I do that? (2 Replies)
Discussion started by: bharadiaam
2 Replies
4. Shell Programming and Scripting
Does not work.
#!/usr/bin/perl
$etcdir = 'ls -l /etc';
print $etcdir;
#END
------------result--------
#perl -w abc123.pl
ls -l /etc
#
This method works.
#!/usr/bin/perl
$etcdir = system("ls -l /etc");
print $etcdir;
#END (2 Replies)
Discussion started by: dplinux
2 Replies
5. Shell Programming and Scripting
I am trying to execute a piped combination of shell commands inside a perl program.
However, it is not working as desired.
This is my program, i am trying to print only filenames from the output of ls -l
$ cat list_test
#!/usr/bin/perl -w
use strict;
my $count=0;
my @list=`ls -l|awk... (4 Replies)
Discussion started by: sam05121988
4 Replies
6. Shell Programming and Scripting
Hi,
I am somewhat new to Perl and currently checking it out. I have a problem testing, if there is nothing being piped in to that script.
I am reading input from STDIN this way:
while( defined($line = <STDIN>) ) {
chomp($line);
if( $line =~ m/($ARGV)/g ) {
... (7 Replies)
Discussion started by: zaxxon
7 Replies
7. Shell Programming and Scripting
Hello,
I'm pretty stumped, and I don't know why I am not able to redirect the output to the 'graphme' file with the command below in Fedora 18.
tcpdump -l -n -t "tcp == 18" | perl -ane '($s,$j)=split(/,/,$F,2); print "$s\n";' > graphme
In case you're wondering, I was following the example... (2 Replies)
Discussion started by: ConcealedKnight
2 Replies
8. Programming
to run most other scripts through a pipe, something similar to the following is usually enough:
cat script.sh | sh
cat perl.pl | perl -- "<arguments"
However, for javascript command line scripts, i cant seem to get this to work. Any ideas?
cat hull.js
#!/usr/bin/js
... (3 Replies)
Discussion started by: SkySmart
3 Replies
9. Shell Programming and Scripting
Hi.
I'm trying to do a "simple" thing.
grep -rls grepped_exp path | xgs
where xgs is an alias to something like:
xargs gvim -o -c ":g/grepped_exp"
now the problem is that I want to pass the "grepped_exp" to the piped alias.
I was able to do something like what I want without the... (4 Replies)
Discussion started by: hagaysp
4 Replies
LEARN ABOUT CENTOS
smbget
SMBGET(1) User Commands SMBGET(1)
NAME
smbget - wget-like utility for download files over SMB
SYNOPSIS
smbget [-a, --guest] [-r, --resume] [-R, --recursive] [-u, --username=STRING] [-p, --password=STRING] [-w, --workgroup=STRING]
[-n, --nonprompt] [-d, --debuglevel=INT] [-D, --dots] [-P, --keep-permissions] [-o, --outputfile] [-f, --rcfile] [-q, --quiet]
[-v, --verbose] [-b, --blocksize] [-O, --stdout] [-U, --update] [-?, --help] [--usage] {smb://host/share/path/to/file} [smb://url2/] [...]
DESCRIPTION
This tool is part of the samba(7) suite.
smbget is a simple utility with wget-like semantics, that can download files from SMB servers. You can specify the files you would like to
download on the command-line.
The files should be in the smb-URL standard, e.g. use smb://host/share/file for the UNC path \\HOST\SHARE\file.
OPTIONS
-a, --guest
Work as user guest
-r, --resume
Automatically resume aborted files
-R, --recursive
Recursively download files
-u, --username=STRING
Username to use
-p, --password=STRING
Password to use
-w, --workgroup=STRING
Workgroup to use (optional)
-n, --nonprompt
Don't ask anything (non-interactive)
-d, --debuglevel=INT
Debuglevel to use
-D, --dots
Show dots as progress indication
-P, --keep-permissions
Set same permissions on local file as are set on remote file.
-o, --outputfile
Write the file that is being downloaded to the specified file. Can not be used together with -R.
-O, --stdout
Write the file that is being downloaded to standard output.
-f, --rcfile
Use specified rcfile. This will be loaded in the order it was specified - e.g. if you specify any options before this one, they might
get overridden by the contents of the rcfile.
-q, --quiet
Be quiet
-v, --verbose
Be verbose
-b, --blocksize
Number of bytes to download in a block. Defaults to 64000.
-?, --help
Show help message
--usage
Display brief usage message
-U, --update
Download only when remote file is newer than local file or local file is missing.
-e|--encrypt
This command line parameter requires the remote server support the UNIX extensions or that the SMB3 protocol has been selected.
Requests that the connection be encrypted. Negotiates SMB encryption using either SMB3 or POSIX extensions via GSSAPI. Uses the given
credentials for the encryption negotiation (either kerberos or NTLMv1/v2 if given domain/username/password triple. Fails the connection
if encryption cannot be negotiated.
SMB URLS
SMB URL's should be specified in the following format:
smb://[[[domain;]user[:password@]]server[/share[/path[/file]]]]
smb:// means all the workgroups
smb://name/ means, if name is a workgroup, all the servers in this workgroup, or if name is a server, all the shares on this server.
EXAMPLES
# Recursively download 'src' directory
smbget -R smb://rhonwyn/jelmer/src
# Download FreeBSD ISO and enable resuming
smbget -r smb://rhonwyn/isos/FreeBSD5.1.iso
# Recursively download all ISOs
smbget -Rr smb://rhonwyn/isos
# Backup my data on rhonwyn
smbget -Rr smb://rhonwyn/
BUGS
Permission denied is returned in some cases where the cause of the error is unknown (such as an illegally formatted smb:// url or trying to
get a directory without -R turned on).
VERSION
This man page is correct for version 3 of the Samba suite.
AUTHOR
The original Samba software and related utilities were created by Andrew Tridgell. Samba is now developed by the Samba Team as an Open
Source project similar to the way the Linux kernel is developed.
The smbget manpage was written by Jelmer Vernooij.
Samba 4.0 06/17/2014 SMBGET(1)