%20%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%20%D0%B2%D1%85%D0%BE%D0%B4%D0%B0%20%D0%BD%D0%B0%20%D0%B4%D1%80%D1%83%D0%B3%D0%BE%D0%B9%20%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80.png)
У меня есть 2 сервера (Linux 2.6.32-696.el6.x86_64), предположим, fe1 и fe2.
мне нужно выполнить команду (служба tomcat запуск/остановка) на fe2 из fe1, но это требуетsudo как root. Команда, которую я использую дляsudo root — этоsudo su
#!/bin/sh
host=fe2
user=`whoami`
sftp $user@fe2 << EOF
sudo su
service tomcat stop
bye
EOF
можно ли это сделать как-то по-другому?
решение1
Вы можете отправить любую команду по ssh с fe1 на fe2 следующим образом:
ssh whoami@fe2 'sudo service tomcat start'
Если вы хотите запустить несколько команд ssh
из одного просмотрщика в другой, используйте отдельные команды ;
внутри, ' '
как показано ниже
ssh whoami@fe2 'sudo -s; service tomcat start; service tomcat status; other_commands; '
ssh
запустит их все в указанном вами порядке. Любой stdin
запрос будет взят с управляющего сервера, а любой вывод на stdout
или stderror
также будет переданssh