Linux - NewbieThis Linux forum is for members that are new to Linux.
Just starting out and have a question?
If it is not in the man pages or the how-to's this is the place!
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
I am writing a script that will shut down a cluster of raspberry pi's.
So far I have 2 Raspberry Pi's,:
pi_one - with keyboard, mouse and screen
pi_two - headless
A key-gen has been generated so pi_one can log into pi_two automatically.
The script connects and logs in successfully from pi_one to pi_two via ssh, but I can't work how to get it to run the command.
I am trying to get pi_one to shutdown pi_two:
Code:
#/bin/bash
clear
ssh pi@192.168.0.1 # Thanks to keygen it logs in automatically
sudo reboot
initially it logs in but just opens up an ssh session with pi_two. When I exit the ssh session, the next line executes closing down the pi_one from which I am using. What do I need to get the next line to execute the reboot command in the pi that I am connecting to?
I am curious about the use of Quotation marks. Both:
Code:
ssh pi@192.168.0.1 sudo shutdown
and
Code:
ssh pi@192.168.0.1 'sudo shutdown'
works and I am assuming:
Code:
ssh pi@ 192.168.0.1 "sudo shutdown"
will also work.
What is the difference please?
Single quotes are "stronger" than double quotes. In particular, the dollar sign inside double quotes retains its special meaning, not so in single quotes.
The remote shell will receive the string that comes after the IP address in your command. With or without quotes, it will parse it correctly. In your example, no difference.
Here is an example where you need quotes:
Code:
ssh pi@192.168.0.1 sh -c "echo hi there"
Whatever comes after the -c must be a single parameter, thus the space must be quoted. It also works this way, but is harder to read:
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.