Сколько лет администрирую серверы, а пропускал мимо ушей интересную возможность ssh. Оказывается, можно выполнять некоторые команды на удалённом сервере, не подключаясь непосредственно к нему по ssh.
Нужно лишь прописать в кавычках команду, требующую выполнения, после основной команды подключения.
Например, просмотр логов nginx/angie/etc.
ssh root@192.168.10.1 'cat /var/log/nginx/access.log'Или показать листинг директорий.
ssh root@192.168.10.1 'ls -la /var/www/example.com/public'Ещё удобнее становится выполнять команды, если добавить алиас для команды ssh root@192.168.10.1 в настройки оболочки командной строки и используя аутентификацию по ключу.
alias srv="ssh root@192.168.10.1"Далее выполняем команды:
srv apt-get update
srv apt-get upgrade
srv systemctl reload nginxКоманды можно комбинировать, как в обычной консоли.
srv 'cd /opt/project/ && git pull && systemctl restart gunicorn'Выполнить некоторые действия от имени другого пользователя:
srv 'sudo -u user ls -la .ssh/authorized_keys'И так далее. :)