как удаленно скопировать файл на удаленную Linux-машину и после этого перезапустить службу?

Ответ был предоставлен в ответе @defalt на «Wi-Fi не работает в kali -linux» .

Модуль «Черный список» acer_wmiрешил проблему.

0
17.12.2019, 12:26
2 ответа

Если вы хотите перезапускать службу всякий раз, когда файлы (изменяются независимо от того, кем ), вы можете рассмотреть возможность использованияincronна удаленном компьютере.

Просто установите пакет и установите соответствующую incrontabзапись:

/etc/dnsmasq.conf IN_MODIFY systemctl restart dnsmasq

Я использую его, например. для запуска команды createrepo, когда я загружаю пакет rpm в свой локальный репозиторий, и, похоже, все работает гладко.

2
28.01.2020, 02:21

Основываясь на совете @Fiximan, вы можете использовать следующую команду, чтобы выполнить то, что вам нужно.

ssh -o "PermitLocalCommand yes" -o "LocalCommand sleep 10 && sudo systemctl restart dnsmasq" user2@host2 "scp user1@host1:/path/to/source /path/to/target"

Это запустит scpдля копирования локального файла на удаленную систему; в то же время он будет ждать 10 секунд, а затем выключит локальную систему. К сожалению, это отключается через 10 секунд, независимо от того, был ли успешно выполнен scp.

Если ваша система достаточно новая, она может поддерживать использование восклицательного знака для локального запуска команд (при условии, что PermitLocalCommand включен ). В этом случае вместо использования -o "LocalCommand sleep 10 && sudo systemctl restart dnsmasq"вы можете запустить

ssh -o "PermitLocalCommand yes" user2@host2 "scp user1@host1:/path/to/source /path/to/target && !sudo systemctl restart dnsmasq"

Восклицательный знак отправляет команду для выполнения в локальной системе. В этом случае локальная система отключается только в случае успешного выполнения scp, и система запросит отсутствующие пароли.

Если вы хотите, чтобы локальная система была выключена независимо от того, успешно ли выполнено scp, вы можете заменить &&на ;.

1
28.01.2020, 02:21

Теги

Похожие вопросы