Running a function on a remote server via SSH in a script
I'm working on a script (mostly for practice) to simplify a task I have to do every now and then. I have a cluster with 6 servers on it, each server has a directory with a set of files called *.pid and *.mpid. Each file contains the pid of a process that may or may not be running on that server. I'm trying to create a script that will hop to each server, collect what pid/mpid files there are, and then check to see if that process is actually running or not.
I've gotten it running using a pretty simple (albeit ugly) one liner:
However, I'd like to be able to create a prettier looking script to do the same thing. I thought for neatness sake I could just put all of the logic in a function at the beginning of the script and then ssh to each server and call on the function, but that doesn't seem to work.
I assume the issue is that once the script jumps to a new server and starts a subshell, it forgets about what ever functions I've declared in the first place. Any help or advice I'd appreciate it.
I need to run a script on a remote server from my ksh script. The issue I'm having is that I need to logon to the remote server as a different user. (see the following)
logged on to server 1 as adsmgr
neet to log on to server 2 as odemgr run passwd_util.ksh
Thanks in advance. (1 Reply)
Hello people,
I am want to run a server on remote machine through perl scripting using telnet api. Now when I try to do so, the server gets started perfectly, but as soon as I close the telnet connection in the script, the server started on the remote machine suddenly goes down. I also... (0 Replies)
Hi,
I am trying to write a script, which queries a db to get the names of processes, stores it in a file and then checks if that process is running on a remote server. However I am not getting it right, could anyone help me out.
#!/bin/sh
echo "select Address from Device where Cust =... (5 Replies)
I am trying to write a script that would let me run a command in a remote server using ssh.
scriptA: (dcm2nii is a command that only works on the other server)
dcm2nii a b c
scriptB: (I run this one on the current server)
ssh -X otherserver /home/abc/Desktop/scriptA
But when I do ... (2 Replies)
So I have a script which performs some basic commands on another server via ssh. It works great, no issues at all. Let's call this "Script A"
BUT, this working script is to be executed remotely from a different UNIX script on another server, also by ssh. Let's call this "Script B".
When... (1 Reply)
Hi All,
I need to run a ksh script on around 200 servers(consisting of AIX,LInux,HP-UX,Solaris). The script is there in the /tmp directory of all the servers. I want want to execute the script in background on the respective servers and then exit from there. I have written something like below:... (8 Replies)
Hi All,
I need to prepare a script.
Description:
Currently i am in server "x(ubuntu os)", here i need to develop a script to ssh to another server "y(ubuntu os)", i have password less authentication to "y". i have done the below
#!/bin/bash
#ssh to the server "y" and confirming i am... (2 Replies)
Hi guys,
So i am in server1 and i have to login to server 2, 3,4 and run some script there(logging script) and output its result. What i am doing is running the script in server2 and outputting it to a file in server 2 and then Scp'ing the file to server1. Similarly i am doing this for other... (5 Replies)
Hello,
I'm trying to create a ksh script to ssh to a remote server, enter the password and a couple commands. For security reasons I have changed the login, password and ip in my example.
#!/bin/ksh
ssh -t -t username@12.5.5.3 << EOF
password
cd bin
pwd
EOF
When I run it. It... (5 Replies)
Hi,
I am trying to run commands on a list of servers that I can ssh to and just want to know if there is a 'cleaner' way of doing this.
At the moment, I am doing as below. Is there a way that I can escape the double quote differently? If a use a single quote to enclose the commands that I... (1 Reply)
Discussion started by: newbie_01
1 Replies
LEARN ABOUT DEBIAN
molly-guard
MOLLY-GUARD(8) [FIXME: manual] MOLLY-GUARD(8)NAME
molly-guard - guard against accidental shutdowns/reboots
SYNOPSIS
shutdown [-hV] [--molly-guard-do-nothing] [-- script_options]
halt [-hV] [--molly-guard-do-nothing] [-- script_options]
reboot [-hV] [--molly-guard-do-nothing] [-- script_options]
poweroff [-hV] [--molly-guard-do-nothing] [-- script_options]
DESCRIPTION
molly-guard attempts to prevent you from accidentally shutting down or rebooting machines. It does this by injecting a couple of checks
before the existing commands: halt, reboot, shutdown, and poweroff. This happens via scripts with the same names in /usr/sbin, so it only
works if you have /usr/sbin before /sbin in your PATH!
Before molly-guard invokes the real command, all scripts in /etc/molly-guard/run.d/ have to run and exit successfully; else, it aborts the
command. run-parts(1) is used to process the directory.
molly-guard passes any script_options to the scripts, and also populates the environment with the following variables:
o MOLLYGUARD_CMD - the actual command invoked by the user.
o MOLLYGUARD_DO_NOTHING - set to 1 if this is a demo-run.
o MOLLYGUARD_SETTINGS - the path to a shell script snippet which scripts can source to obtain settings.
molly-guard prints the contents of /etc/molly-guard/messages.d/COMMAND or /etc/molly-guard/messages.d/default to the console, if either
exists. This is due to /etc/molly-guard/run.d/10-print-message.
GUARDING SSH SESSIONS
molly-guard was primarily designed to shield SSH connections. This functionality (which should arguably be provided by the openssh-server
package) is implemented in /etc/molly-guard/run.d/30-query-hostname.
This script first tests whether the command is being executed from a tty which has been created by sshd. It also checks whether the
variable SSH_CONNECTION is defined. If any of these tests are successful, test script queries the user for the machine's hostname, which
should be sufficient to prevent the user from doing something by accident.
You can pass the --pretend-ssh script option to molly-guard to pretend that those tests succeeds. Alternatively, setting
ALWAYS_QUERY_HOSTNAME in /etc/molly-guard/rc causes the script to always query.
The following situations are still UNGUARDED. If you can think of ways to protect against those, please let me know!
o running sudo within screen or screen within sudo; sudo eats the SSH_CONNECTION variable, and screen creates a new pty.
o executing those command in a remote terminal window, that is a XTerm started on a remote machine but displaying on the local X server.
You have been warned. You can use the --molly-guard-do-nothing switch to prevent anything from happening, e.g. halt
--molly-guard-do-nothing.
OPTIONS --molly-guard-do-nothing
Cause molly-guard to print the command which would be executed, after processing all scripts, instead of executing it.
-h, --help
Display usage information.
-V, --version
Display version information.
SEE ALSO shutdown(8), halt(1), reboot(8), poweroff(8).
LEGALESE
molly-guard is copyright by martin f. krafft. Andrew Ruthven came up with the idea of using the scripts directory and submitted a patch,
which I modified a bit.
This manual page was written by martin f. krafft madduck@madduck.net.
Permission is granted to copy, distribute and/or modify this document under the terms of the Artistic License 2.0
COPYRIGHT
Copyright (C) 2008 martin f. krafft
[FIXME: source] Apr 19, 2008 MOLLY-GUARD(8)