Is there a way to easily shutdown a remote linux server with a shell script?
I have 3 linux servers hooked to my UPS. I can only hook the UPS to one of them. The UPS software will allow me to run a shell script on that one server before it shuts down. And I want that shell script to shut down the other 2 servers. Is this possible? @ Roland J: I AM FULLY AWARE OF HOW TO SHUTDOWN A LINUX MACHINE. @ Roland J: Please don’t answer a question unless you actually READ the question!!!!! It makes other people think the question is answered, when in reality, your just lazy to even read the full title of the question. (or you don’t know what the word “remote” means) I need to know how to shutdown a linux machine REMOTELY. This means that I want to run a script on LinuxBox1 and have LinuxBox2 (another linux server on same LAN) shut down.
Public Comments
- the command to shut down a Linux machine is... /usr/sbin/shutdown -h now do a man shutdown for details RJ
- you can tack on that shutdown command to the end of an ssh command you know. I don't know the specific syntax, it'd be like ssh username:password "shutdown -r now"
- Actually SSH would have to be set up first to allow passwordless, login between servers. I found the solution else where, and just wanted to post it here, in case anyone else stubles on this question looking for an answer. NOTE: IN THE RESOLUTION BELOW MANY OF THE COMMANDS ARE CUT OFF, OR INCORECTULY SHOW AS TWO LINES. FOLLOW THIS LINK FOR A PROPERLY FORMATED ANSWER. http://www.justlinux.com/forum/showthread.php?p=863427#post863427 RESOLUTION: Here's what I did... First I ssh'd from each machine to each other one. (The first time u ssh to new machine it asked you to accept the machines "fingerprint" and saves it -- this is just so they know who each other are. Then on the machine I wanted to be able to shutdown FROM I did [CODE] cd /root/.ssh/ ssh-keygen -t rsa [/CODE] and accepted the default location. (/root/.ssh/id_rsa) I left the passphrase blank, so it would not be required. Then basically you just need to copy that "id_rsa" file onto the DESTINATION machine, in the same directory, but named as "authorized_keys". Which can easily be done like this: [CODE] scp id_rsa.pub xxx.xxx.xxx.xxx:/root/.ssh/authorized_keys [/CODE] Where xxx.xxx.xxx.xxx is the IP address or host name of remote machine. [INDENT]NOTE: You may want to check if a file by that name already exists, on the remote machine, because the above command will overwrite it without warning. -- If you already have a file by that name on the remote machine, I would suggest using command above, but change the file name. Then on the remote machine, append the file you just copied to the existing one. This could easily be done like this: (there may be an even simpler way - but this is what I know) [CODE]mv /root/.ssh/authorized_keys /root/.ssh/authorized_keys.backup cat /root/.ssh/authorized_keys.backup /root/.ssh/yourfilename > /root/.ssh/authorized_keys [/CODE] [/INDENT] Then make sure the /root/.ssh/authorized_keys file has 600 permissions. [CODE] chmod 600 /root/.ssh/authorized_ keys [/CODE] Then try to ssh to the remote machine. [CODE] ssh xxx.xxx.xxx.xxx [/CODE] And if it works like it did for me -- it will let you right in, with no username or password. If this works correctly, you should be able to remotely run commands through ssh within scripts.
Powered by Yahoo! Answers