- Shut down computer using ssh
- 6 Answers 6
- Как удаленно выключить компьютер с Windows, Linux и Mac?
- Методы удаленного выключения ПК с Windows 7, 8/8.1, 10
- Как удаленно выключить ПК с Linux?
- Как удаленно выключить ПК с Mac?
- Как выключить удаленный windows и linux сервер
- Дистанционное выключение Windows сервера
- Удаленное выключение linux сервера
- Заключение
- Онлайн курс по Linux
Shut down computer using ssh
What ways are there to shut down a computer using ssh? I’m running on linux and when I try to shut it down remotely using ssh, it doesn’t actually work. I used the command sudo shutdown now . Afterwards, it said that the system is going down for maintenance NOW or whatever. However, when I got home, I came to discover that the computer was still on stuck on the Plymouth shut-down screen. How can I achieve this?
This doesn’t sound like a linux problem. This sounds like a hardware problem that your machine refuses to shut down after receiving the shutdown command. What is Plymouth?
What distribution and version of Linux are you using? What messages are showing on the Plymouth shutdown screen? Can you edit your question to post a screenshot? Have you looked at the log files (e.g., /var/log/messages )? Can you edit your question to include the relevant part of the log file from when you began the shutdown to when it got stuck? If you want a good diagnosis you should provide more information.
6 Answers 6
Multiple ways, depending on habits and needs, but the most common method is:
Because it’s clean, it does a sync for all drives, and it’s easy to alter its behavior if you for some reason want to., For example, shut down an hour in the future instead.
In your particular case, it’s missing the -h flag, which requests a poweroff as well. Without the -h flag, it is left on the linux equivalent of the old Windows 95 “You can now shut off your computer” or whatever it was that it used to say.
Как удаленно выключить компьютер с Windows, Linux и Mac?
Бывают случаи, когда компьютер, работающий под управлением операционной системы Windows, Linux и Mac нужно выключить не сразу, а по истечению какого-то времени: загрузка торрента, обновление программы или операционной системы, завершение диагностики и т д. При этом, чтобы удаленно выключить компьютер с Windows или любой другой операционной системой, нужно изначально настроить его. Поэтому предлагаем рассмотреть способы, как осуществить удаленное выключение устройства.
Методы удаленного выключения ПК с Windows 7, 8/8.1, 10
Удаленно выключить ПК с Windows можно несколькими способами: с помощью командной строки и с помощью службы удаленного реестра. В первом случае нужно запустить консоль с правами Администратора и ввести shutdown /i.
Откроется окно утилиты Remote Shutdown. Нажимаем на кнопку «Добавить».
Вводим имя компьютера и жмем «Ок».
Теперь выбираем операцию: перезагрузка, выключение или неожиданное завершение.
В причинах выбираем «Другое (запланированное)», а также указываем комментарий. Без комментария кнопка «ОК» не будет активной. Кликаем «Ок».
Для того, чтобы удаленно выключить компьютер с Windows 7 и выше с помощью службы удаленного реестра, стоит выполнить следующее:
- Теперь запускаем Брандмауэр. В меню слева выбираем «Разрешить запуск программы или компонента через брандмауэр Windows».
- Выбираем «Удаленное управление Windows» или «Windows Management Instrumentation». Устанавливаем флажки.
- Теперь с помощью командной строки запускаем удаленное выключение ПК.
Как удаленно выключить ПК с Linux?
Устройство с операционной системой Linux можно удаленно выключить несколькими способами.
Первый способ – использование Терминала, аналога командной строки с Windows.
- Запускаем терминал. Вводим sudo shutdown -h now. Это команда, которая выключит компьютер сразу.
- Если ввести sudo shutdown -h +5, то система завершит свою работу через 5 минут. Время можно задавать свое. К примеру, можно задать точное время sudo shutdown -h 21:00.
- Для того, чтобы отменить выключение, стоит ввести sudo shutdown –c.
Также, если ваш ПК подключен к серверу, то удаленно выключить компьютер с Linux можно следующим образом:
- Необходимо установить или запустить стандартное средство putty. Эту программу можно запустить из командной строки.
- Теперь создаем документ shutdown.txt с содержанием shutdown -h now.
- Теперь создаем документ с разрешением bat и названием serv-rem-shut.bat. Содержание должно быть следующим putty.exe -m shutdown.txt -ssh -P 22 -l root -pw rootpass 10.10.5.15, где каждая команда имеет свое обозначение.
- Передаем пользователю на ПК, который нужно выключить, три файла:
- putty.exe
- shutdown.txt
- serv-rem-shut.bat
Теперь, при запуске скрипта serv-rem-shut.bat, серверу по сети будет отправлена команда на завершение работы. При этом система не выдаст никаких вопросов. Сервер просто молча выключится.
Как удаленно выключить ПК с Mac?
Для того, чтобы удаленно выключить Mac, стоит выполнить следующие действия:
- Запускаем командную строку, перейдя по адресу /Applications/Utilities/folder.
- Вводим sudo shutdown -h now. Компьютер сразу выключиться.
Если же запустить Терминал, то командой sudo halt можно моментально выключить устройство. Однако, как в первом, так и во втором случае, нужно ввести пароль к учетной записи Mac.
В сети можно найти еще способы, как удаленно отключить устройства с Windows, Linux и Mac. Однако мы привели только безопасные способы, при применении которых вы не нарушите системные настройки и не повредите системные файлы.
Как выключить удаленный windows и linux сервер
У меня появилась задача по организации оперативного выключения удаленных серверов в один клик. Причем выключать сервера должны разнообразные пользователи, в том числе и без знаний и понимания принципов работы сервера. То есть они должны просто нажать кнопку, чтобы сервер автоматически завершил свою работу.
Если у вас есть желание научиться администрировать системы на базе Linux, рекомендую познакомиться с онлайн-курсом «Linux для начинающих» в OTUS. Курс для новичков, для тех, кто с Linux не знаком. Подробная информация.
Причем выключать по сети нужно как windows серверы, так и linux различных дистрибутивов — ubuntu, centos, freebsd. То есть решение должно быть простое и надежное.
Дистанционное выключение Windows сервера
Начнем с самого сложного. На практике реализовать надежный способ выключения windows машин по сети для меня оказалось сложнее, чем linux. Методов и подходов к решению данной задачи много. Я пробовал разные варианты и остановился на одном, который мне показался самым надежным, он сработал без проблем во всех случаях во время тестирования.
Обязательным условием удаленного выключения сервера является сетевой доступ к нему по rdp. Вы можете находится в локальной сети с ним, подключиться по vpn или пробросить rdp соединение редиректом со шлюза. Не важно, главное попасть в систему по rdp.
Принцип работы удаленного отключения следующий:
- На компьютере или сервере создается пользователь, которому будет разрешено подключаться по rdp и завершать работу сервера.
- В автозагрузке этого пользователя будет скрипт для завершения работы.
- Пользователям, которые будут удаленно выключать сервер, дается специально подготовленный rdp клиент, который без всяких запросов будет подключаться нужным пользователем, у которого будет срабатывать скрипт на завершение работы.
Все достаточно просто, но на каждом этапе я сталкивался с проблемами, которые требовали не тривиального решения. Но обо все по порядку.
Итак, идем на север и создаем там простой bat файл следующего содержания:
Сохраняем файл и создаем пользователя, под которым будем выключать сервер. Не забудьте добавить этому пользователю разрешение подключаться по rdp. Если вы выключаете компьютер с десктопной системой, то прав обычного пользователя достаточно. Если же вам надо погасить Windows Server, то пользователя нужно либо сделать админа, либо дать ему права на разрешение выключение сервера через локальную политику безопасности. Живет эта политика по адресу — параметры безопасности — локальные политики — назначение прав пользователей — завершение работы системы.
Вот тут я напоролся на первые неприятности. Я назвал свой скрипт shutdown.bat и очень долго не мог понять, почему он не срабатывает. При вводе команды shutdown с параметрами в консоли все отлично работало, но скрипт не запускался. Оказывается, его нельзя называть таким именем. После того, как переименовал в shut.bat, все отлично заработало. Какая-то нелепая загвоздка, но мне пришлось потратить немало времени, пока я разобрался, в чем тут дело.
Дальше заходим нашим новым пользователем, чтобы создались стандартные папки профиля и кладем скрипт автовыключения сервера ему в автозагрузку — C:\Users\shut-user\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup.
Теперь нам нужно настроить автоматический вход пользователя по rdp, чтобы выполнить удаленное завершение работы. Причем пользователь должен заходить на сервер без запроса имени и пароля. Штатными средствами rdp клиента windows это сделать невозможно. Даже если вы сохраните параметры, то при переносе настроек на другой компьютер нужно будет снова вводить пароль. Мне это не подходило.
Я пробовал использовать старую портированную версию rdp 5.2. Это последняя версия, где пароль в зашифрованном виде можно было хранить в файле настроек. Но при переносе этого файла на другой компьютер, все равно выскакивало окно с вводом пароля. Добиться полного автоматизма не получалось.
Но решение было найдено. Существует любопытный проект Remote Desktop Plus, который является надстройкой над rdp. С помощью этой надстройки можно передать параметры в rdp через командную строку, в том числе и имя пользователя с паролем. Мне это полностью подходит. Скачиваем файлик rdp.exe либо с сайта автора проекта, либо с моего. Я скопировал на всякий случай эту очень полезную утилиту. Кладем его в папку и создаем в этой же папке rem-shut.bat файл следующего содержания:
rdp.exe /v:10.10.5.14 /u:shut-user /p:pass123 /w:640 /h:480
10.10.5.14 | адрес удаленного сервера |
shut-user | пользователь rdp от имени которого будет происходить выключение |
pass123 | пароль пользователя |
640 480 | параметры разрешения экрана, можно не указывать |
Всего этого достаточно, чтобы выполнить дистанционное завершение работы на windows сервере. Пользователю необходимо передать 2 файла:
Важно, чтобы они лежали в одной папке. При запуске батника произойдет подключение rdp пользователя и выполнится скрипт завершения работы. Задача выполнена.
Удаленное выключение linux сервера
Здесь все оказалось значительно проще. Сразу же было найдено рабочее решение, которое позволяет без проблем удаленно выключить любой linux сервер. Задача решается стандартными средствами putty. Эту программу можно запускать из командной строки с параметрами. В качестве параметров можно указать файл с командами для выполнения, адрес сервера, пользователя и пароль.
Подготовим все необходимое. Сначала создаем простой текстовый документ shutdown.txt следующего содержания:
Дальше создаем bat файл serv-rem-shut.bat с таким содержимым:
putty.exe -m shutdown.txt -ssh -P 22 -l root -pw rootpass 10.10.5.15
shutdown.txt | текстовый файл с командой на отключение |
22 | номер порта ssh |
root | имя пользователя, от которого будет выполняться команда на удаленное выключение, лучше создать отдельного |
rootpass | пароль этого пользователя |
10.10.5.15 | адрес linux сервера |
Передаем пользователю 3 файла, сложенные в одну папку:
Теперь при запуске скрипта serv-rem-shut.bat серверу по сети будет отправлена консольная команда на завершение работы. При этом не будет задано никаких вопросов. Сервер просто молча выключится.
Заключение
Вот такие нехитрые способы были мной придуманы и реализованы. Тут еще важно обеспечить доступ к локальной сети, в которой живут серверы. В моем случае openvpn позволяет выполнить удаленное выключение компьютеров даже через интернет.
Уверен, существует множество других возможностей погасить сервер удаленно. Буду рад, если в комментариях со мной кто-нибудь поделится своими идеями и опытом на этот счет.
Онлайн курс по Linux
- Умение строить отказоустойчивые кластера виртуализации для запуска современных сервисов, рассчитанных под высокую нагрузку.
- Будете разбираться в современных технологиях кластеризации, оркестрации и виртуализации.
- Научитесь выбирать технологии для построения отказоустойчивых систем под высокую нагрузку.
- Практические навыки внедрения виртуализации KVM, oVirt, Xen.
- Кластеризация сервисов на базе pacemaker,k8s, nomad и построение дисковых кластеров на базе ceph, glaster, linstore.