Saturday, February 2, 2013

Is there a way to easily shutdown a remote linux server with a shell script?

Q. 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.

A. 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.

scp files from my school computer to my home computer?
Q. I just purchased an iMac for my home office and I want to copy files from my Linux machine at school to my iMac at home. My iMac is on a wireless router. I open up a terminal and use ssh, but I'm having issues copying files over. I tried scp filename username@home_ip_address:~ but it doesn't work. Any suggestions?

A. on your imac:
scp your_school_account@ \
your_school_machine:/home/juan/filename .
(two lines because Yahoo Answers didn't display it right)

or Charlie Kelly's method:
sftp your_school_account@your_school_machine
get filename

another option is to use a GUI if you prefer:
download Cyberduck, a free FTP client for Macs

How would you go about this linux task?
Q. 1. I must grep through executable scripts, but they don't end in .doc or .exe tag

2. the grep signature will be "rcp" other remote commands so I can change them secure commands like "scp"

Is there any way I could do this in Linux and using Perl?

A. find . -type f -perm /u+x -exec grep -l -w rcp {} \;

Find regular files starting at the current directory which are executable by the owner. When found grep on whole words of "rcp", but display only the file names.

If you really want to replace "rcp" with "scp" in all cases (not recommended because that is too sweeping), then add a sed loop. Something like this:


find . -type f -perm /u+x -exec grep -l -w rcp {} \; | while read NAME; do cat $NAME | sed -e 's/rcp /scp /g' > .tmp.$$ ; mv .tmp.$$ $NAME; done

Be SURE to test that thoroughly before trying that last bit.



Nec Projector Review

Plastic Shed Reviews

Ati Graphic Reviews

Nurse Uniforms Reviews

Cabochons Reviews

Inflatable Water Slides Reviews

Barcode Scanner Reviews

No comments:

Post a Comment