08-23-2012
You have written a perl script which generates shell scripts by running a shell script, which generates shell scripts and writes them to a file, presumably to run it in another shell later.
That's at least three separate, independent shells you're running there, to handle one line of "perl". If you have lots of system calls like this, your perl script is probably just thinly-disguised and uglified pure shell code, run with extraordinary inefficiency.
Could we see more of your code? I suspect the problem will become more evident. As well as better ways to solve the problem.
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Hi,
I am having nightmare issue-ing remote ssh command from a CGI perl script.
It just won't run on debug message: It says permission denied. Can I even do this? as the apache server running under DAEMON account probably can't execute it? Is this the case of what's going on?
Here is my... (3 Replies)
Discussion started by: Dabheeruz
3 Replies
2. Shell Programming and Scripting
Net::SSH::Perl ...... how to print the output in a proper format
my $cmd = "ls -l";
my $ssh = Net::SSH::Perl->new($host);
$ssh->login($user, $pass);
my($stdout, $stderr, $exit) = $ssh->cmd("$cmd");
print $stdout;
the script works fine, but i am unable to see the output... (2 Replies)
Discussion started by: gsprasanna
2 Replies
3. Shell Programming and Scripting
Hi, could anyone please tell me how to ssh to remote host foo and execute command on it and print the result on local host?
Thanks,
Paresh (1 Reply)
Discussion started by: masaniparesh
1 Replies
4. Shell Programming and Scripting
Hi all,
I am facing the following issue:
Host A should execute a remote command (say pwd) on host B2.
B2 is not directly reacheable but you have to connect from a to B1, then from B1 you can execute the command ssh user@B2 pwd.
B1 and B2 are directly connected:
A => B1 => B2
| ... (3 Replies)
Discussion started by: Evan
3 Replies
5. Shell Programming and Scripting
Hi all,
Today I want to write a script to run the commands remotely.
If I run the command as follows:
ssh <user>@<ip> 'ls; pwd'
it works fine.
But when I want to use ssh to set view in clearcase, it will lose the response. as follows
ssh <user>@<ip> 'cleartool setview <view_name>; pwd'... (1 Reply)
Discussion started by: Damon_Qu
1 Replies
6. UNIX for Dummies Questions & Answers
ssh -q <hostname> /opt/tcs/satish/tst.ksh
ssh -q <anotherserver> /opt/tcs/satish/tst.ksh
tst.ksh has "nohup <command> & "
when i execute below script , its throwing error as
nohup can not be found
ssh -q <anotherserver> /opt/tcs/satish/tst.ksh > log &
can someone let me... (5 Replies)
Discussion started by: only4satish
5 Replies
7. Shell Programming and Scripting
Hi
The command below does not work as it require to take command in the breakers
But If I do so the variable values get lost
ssh testserver01 'dsmc q b "${ARCHIVE_DIR}*" -sub=yes -querysummary -inactive -fromd="${BACKUP_DATE}"'
Thank you. (3 Replies)
Discussion started by: zam
3 Replies
8. Shell Programming and Scripting
How should i make the following code working
#!/bin/bash
INPUTFILE="test.txt"
while read STRING; do
IP=`host -t A $STRING | awk '{print $NF}'`
HOSTNAME=`ssh -oPasswordAuthentication=no -oStrictHostKeyChecking=no $IP "hostname"`
echo $HOSTNAME > out.txt
done < $INPUTFILE
At this moment while... (3 Replies)
Discussion started by: urello
3 Replies
9. Shell Programming and Scripting
In my .tcshrc I define and run an alias to set my terminal title. The title contains the hostname. I do this because I ssh to other machines a lot and I always need to know which host I am typing in. The alias is defined and run in the .tcshrc like this...
alias tt 'echo -n "^0;`hostname -s`^G"'... (5 Replies)
Discussion started by: salvadorjoshua
5 Replies
10. Shell Programming and Scripting
Hello i am having an issue with bash script and this is the code
now=$(cat hosts1.txt | awk '{print $2;}')
while read n ;do
ssh root@$now 'useradd test1; echo -e "test1\ntest1" | passwd test1 && echo "test1 ALL=(ALL:ALL) ALL" >> /etc/sudoers'
When i execute only part with cat, it... (8 Replies)
Discussion started by: tomislav91
8 Replies
LEARN ABOUT MOJAVE
dbd::gofer::transport::stream5.18
DBD::Gofer::Transport::stream(3) User Contributed Perl Documentation DBD::Gofer::Transport::stream(3)
NAME
DBD::Gofer::Transport::stream - DBD::Gofer transport for stdio streaming
SYNOPSIS
DBI->connect('dbi:Gofer:transport=stream;url=ssh:username@host.example.com;dsn=dbi:...',...)
or, enable by setting the DBI_AUTOPROXY environment variable:
export DBI_AUTOPROXY='dbi:Gofer:transport=stream;url=ssh:username@host.example.com'
DESCRIPTION
Without the "url=" parameter it launches a subprocess as
perl -MDBI::Gofer::Transport::stream -e run_stdio_hex
and feeds requests into it and reads responses from it. But that's not very useful.
With a "url=ssh:username@host.example.com" parameter it uses ssh to launch the subprocess on a remote system. That's much more useful!
It gives you secure remote access to DBI databases on any system you can login to. Using ssh also gives you optional compression and many
other features (see the ssh manual for how to configure that and many other options via ~/.ssh/config file).
The actual command invoked is something like:
ssh -xq ssh:username@host.example.com bash -c $setup $run
where $run is the command shown above, and $command is
. .bash_profile 2>/dev/null || . .bash_login 2>/dev/null || . .profile 2>/dev/null; exec "$@"
which is trying (in a limited and fairly unportable way) to setup the environment (PATH, PERL5LIB etc) as it would be if you had logged in
to that system.
The ""perl"" used in the command will default to the value of $^X when not using ssh. On most systems that's the full path to the perl
that's currently executing.
PERSISTENCE
Currently gofer stream connections persist (remain connected) after all database handles have been disconnected. This makes later
connections in the same process very fast.
Currently up to 5 different gofer stream connections (based on url) can persist. If more than 5 are in the cache when a new connection is
made then the cache is cleared before adding the new connection. Simple but effective.
TO DO
Document go_perl attribute
Automatically reconnect (within reason) if there's a transport error.
Decide on default for persistent connection - on or off? limits? ttl?
AUTHOR
Tim Bunce, <http://www.tim.bunce.name>
LICENCE AND COPYRIGHT
Copyright (c) 2007, Tim Bunce, Ireland. All rights reserved.
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See perlartistic.
SEE ALSO
DBD::Gofer::Transport::Base
DBD::Gofer
perl v5.18.2 2013-06-24 DBD::Gofer::Transport::stream(3)