I'm attempting to open multiple xterms and run a command as an SAP user via sudo using PSSH. So far, I'm able to run PSSH to a file of servers with no check for keys, open every xterm in to the servers in the file list, and SUDO to the SAP(ADM) user, but it won't do anything else afterwards.
I've tried many combinations and I'm not sure if my options for the pssh nor the xterm options are set correctly....Here is what I have now..
No combination of quotes and semicolons is going to help when your shell code isn't being fed into a shell. xterm is not a shell, and won't understand cmd1;cmd2;...
Also, when you ssh through, your local shell may strip off the outer layer of quotes, turning it into xterm -e cmd1 ; cmd2 ; ls ; bash which is probably not what you want -- it will wait for xterm to quit before running the rest, outside!
To have xterm run a shell, tell xterm to run a shell. You can feed a string into most Bourne shells with the -c option.
xterm -e sudo bash -c "'cmd1;cmd2;ls;exec bash'"
I'm not 100% sure whether you need the extra ' ' when you run it with SAP or not. It depends whether your code gets fed into an actual shell, or just a dumb splitter. A dumb splitter might need exec\ bash to not split upon the space, even though its inside quotes.
...the 'exec bash' at the end should drop it to an interactive prompt. If it's not doing a good enough job of loading your profile, try exec bash -l .
How are you running sisadm? Give an example. I am not familiar with sisadm; however, perhaps you are hitting it in an interactive mode and there is a way to run it by redirecting it's standard input, or by a command line argument that points to a script containing sisadm commands.
As I understand it SAP is about as noninteractive as it gets, hence the desperate attempts to kludge a real, actual interactive shell into its one-way thinking.
Hey Thanks for all of your quick replies. I appreciate that!!
I'm able to sudo to my sap(adm) user via the sudo /path/sap_sudo.sh . So that part works well with all xterm windows at my user prompt SAPADM>
Now if I can run command any unix or SAP command, which I can manually from these windows, such as ls -lrt , pwd , or R3trans -d then that would be crazy good. Imagine that and seeing the output on all systems in the different windows at the same time. That's my goal.
...because if you don't put the commands into xterm, they're not going to be in xterm.
Try just pssh -i -h ectsrv -A -O StrictHostKeyChecking=no "export DISPLAY=IP address:0.0; xterm -e bash" to see if you can at least get a terminal prompt. If you can get a terminal prompt, try and build from there.
What is /path/sap_sudo.sh ? What does it do? How is it used?
You're trying to feed bash something that's not a shell script... Namely, you're trying to feed it /usr/bin/sudo. Wouldn't you rather have sudo run bash instead?
I am very glad that you have something that is working for you. What shell are you using. Most shells would give you a syntax error for both of those commands due to unmatched double quotes.