Как я могу удаленно завершить работу Ubuntu с помощью Google Home? Думаю, мне понадобятся ssh, IFTTT и несколько приложений для Android, но я не знаю, как это сделать. Существует множество руководств по Windows, но нет руководств по Linux и Ubuntu.
OK. Через некоторое время у меня все заработало.
Я добился отключения Ubuntu с помощью IFTTT, Dropbox и inotifywait (inotifywait - это инструмент, который может запускать сценарии или команды при изменении какого-либо файла или папки).
Это выглядит примерно так: я прошу Google Home выключить ПК -> Google Home просит IFTTT изменить файл в Dropbox -> inotifywait видит изменение в файле и отключает компьютер.
Шаг за шагом:
Перейдите на https://www.dropbox.com и зарегистрируйтесь, если у вас нет учетной записи.
[ 1116]Перейдите на https://www.dropbox.com/install Загрузите пакет для Ubuntu, установите этот пакет двойным щелчком мыши.
Откройте Dropbox в меню приложений, пройдите процесс подключения вашей учетной записи. Теперь у вас должна быть папка Dropbox в вашей домашней папке. Создайте папку «RemoteTurnOff» в папке «Dropbox». Внутри папки «RemoteTurnOff» создайте файл «fileToWatch.txt». Это можно сделать, перейдя в свои приложения, откройте «Текстовый редактор», выберите меню из 3 точек, нажмите «Сохранить как», найдите и выберите папку RemoteTurnOff. Не забудьте изменить имя файла на «fileToWatch.txt»
Внутри папки «RemoteTurnOff» создайте файл «script.sh». Это можно сделать, зайдя в приложения, откройте » Текстовый редактор". Вставьте этот код в редактор:
blockquote>#!/bin/sh ### BEGIN INIT INFO # Provides: filenotifier # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Something # Description: Something else ### END INIT INFO cd /home/YOUR_USER_NAME/Dropbox/RemoteTurnOff inotifywait -e close_write,moved_to,create -m . | while read -r directory events filename; do if [ "$filename" = "fileToWatch.txt" ]; then systemctl poweroff fi done
Важное замечание: Измените YOUR_USER_NAME на свое имя пользователя. Если вы не знаете своего имени пользователя: откройте терминал и введите
whoami
. Теперь нажмите на меню из 3 точек в текстовом редакторе, нажмите «Сохранить как», найдите и выберите папку RemoteTurnOff. Не забудьте изменить имя файла на «script.sh»
- Щелкните правой кнопкой мыши файл script.sh -> Свойства -> Разрешения -> нажмите «Разрешить запуск файла как программы» (оно должно быть проверено).
Чтобы убедиться, что это исполняемый файл, сделайте следующее: Щелкните правой кнопкой мыши на пустом месте внутри папки RemoteTurnOff. Выберите «Открыть в терминале». Запустите эту команду:
sudo chmod +x script.sh
- Теперь вы можете проверить, работает ли скрипт. Откройте папку RemoteTurnOff, щелкните правой кнопкой мыши пустое место, выберите «Открыть в терминале», введите:
blockquote>
./script.sh
Не закрывать терминал , откройте «fileToWatch.txt» в редакторе, введите текст, сохраните изменения. Ваш компьютер должен выключиться. Если он выключился, тогда все в порядке - продолжайте.
- Позволяет запускать скрипт в фоновом режиме при запуске. Открыть терминал, прошлая команда:
cd / etc
blockquote>прошлая команда
sudo nano rc.local
Теперь вы должны находиться в режиме текстового редактора , Вставьте этот текст в редактор:
#!/bin/sh -e sh '/home/YOUR_USER_NAME/Dropbox/RemoteTurnOff/script.sh' & exit 0
Вам нужно изменить YOUR_USER_NAME на свое имя (используйте команду whoami в другом окне терминала, чтобы получить имя, если вы его не знаете). Не забудьте "& amp;" знак в конце второй строки!
Нажмите Ctrl + O, чтобы сохранить его. Нажмите Enter, чтобы подтвердить имя. Это должно выглядеть следующим образом: pic
Нажмите Ctrl + X, чтобы выйти из режима текстового редактора в терминале.
Теперь выполните эту команду, чтобы сделать исполняемый файл rc.local:
sudo chmod +x rc.local
Теперь сценарий должен запускаться при запуске в фоновом режиме. Проверьте это: перезагрузитесь, затем перейдите в Dropbox -> RemoteTurnOff, откройте «fileToWatch.txt», вставьте текст и сохраните. ПК должен перезагрузиться. Вся тяжелая работа сделана. Далее мы подключим Dropbox к Google Home.
Зайдите на https://ifttt.com/ Зарегистрируйтесь (лучше использовать учетную запись Google для регистрации)
Зайдите на https://ifttt.com/services/google_assistant/settings Подключитесь к своей домашней странице Google. Убедитесь, что статус активен.
Перейдите на https://ifttt.com/services/dropbox/settings Подключите свой Dropbox. Убедитесь, что статус активен.
На сайте IFTTT можно создать новый апплет. Нажмите «Мои апплеты», а затем «Создать апплет».
Нажмите «+ this», найдите «assistant», нажмите «Google Assistant»
Выберите «Скажите простую фразу».
На следующем экране введите фразу, которую вы будете использовать для общения с Google Home. В моем случае это выглядит примерно так: pic Затем нажмите «Создать триггер»
Нажмите «+», найдите «Dropbox», выберите «Dropbox». ». На следующем экране выберите третий вариант: «Добавить в текстовый файл»
Заполнить информацию:
имя файла -> "fileToWatch.txt"
content -> "#" (это может быть любой символ)
путь к папке Dropbox -> "RemoteTurnOff /"
Нажмите «Создать действие». Лучше отключить уведомление - оно раздражает.
Теперь скажите вашему дому Google: «Выключите компьютер».
Возможно, я забыл некоторые шаги. Пожалуйста, скажите мне, если это не сработало, я помогу вам и исправлю инструкцию. Проверено на Ubuntu 18.04 LTS. Я не создал вопрос только для того, чтобы ответить на него. Я не знал ответа, когда создавал вопрос.
Чтобы включить компьютер с помощью Google Home, вам не нужно ничего делать в Ubuntu: есть много инструкций, как это сделать с помощью WOL и Android. Просто введите "включить компьютер с помощью Google Home" в поиске Google.