Se bem me lembro, alias
não pode usar variáveis dentro dela - então use function
.
function sshserv {
gnome-terminal --tab --command "
bash -c 'ssh root@$1 \"bash -rcfile .my_bashrc\"'"
}
e use como
sshserv server1
Eu regularmente tenho que ssh
em quatro ou mais servidores que corremos, ao mesmo tempo. Eu aliased estes como.
SERVER1=root@server1
alias sshserver1='ssh -t ${SERVER1} "bash -rcfile .my_bashrc"'
# Above line runs my specific bashrc called my_bashrc
# (this is because many users log in as root, and we
# have separate bashrcs for each of us. Yes, we should
# have different user accounts etc, but it is what it is).
Meu ssh
é sem senha para esses servidores.
Atualmente eu abro uma instância do gnome-terminal, depois tun Ctrl + T quatro vezes para abrir quatro abas. Em seguida, percorra-os digitando sshserver1 no primeiro, sshserver2 no segundo, etc. Isso é irritante.
O que eu quero é poder criar uma função como
function sshallservers()
{
#Function to open tabs and ssh into four servers
1.) Open first tab, which must source specific .my_bashrc
to pick up the aliases, run alias sshserver1, thereby
ssh-ing to the relevant server.
2.) Repeat for N servers
}
Então eu tentei com
gnome-terminal --tab --command "bash -c 'ssh root@server1'"
--tab --command "bash -c 'ssh root@server2'"
E isso funciona na medida em que abrem as abas e ssh
ing, no entanto, tem vários problemas ...
Eu não quero fazer root @ server1, eu quero fazer sshserver1 (definido como um alias no meu arquivo .my_bashrc
local. Então eu quero de alguma forma isso ser originado e disponível de tal forma que eu possa usar este alias.
Quando o comando ssh tiver sido executado, quero que ele origine o arquivo .my_bashrc
remoto, isso pode ser obtido apenas por usar o alias como meu alias é definido para fornecer isso com o -rcfile bandeira
Não consigo encontrar uma maneira de transformar a nova guia em um arquivo bashrc
local e, portanto, não consigo fazer com que meu alias funcione. Como não tenho meu alias funcionando, não posso dizer ao ssh para executar o comando bash -rcfile .my_bashrc
, portanto, o arquivo bashrc
remoto não é automaticamente originado.
Se bem me lembro, alias
não pode usar variáveis dentro dela - então use function
.
function sshserv {
gnome-terminal --tab --command "
bash -c 'ssh root@$1 \"bash -rcfile .my_bashrc\"'"
}
e use como
sshserv server1
Tags ssh gnome-terminal bash bashrc