У меня есть 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