ssh
私たちが同時に運営する4台程度のサーバーを確認する必要がある場合がよくあります。私はこれらのエイリアスを与えました。
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).
ssh
このサーバーのパスワードはありません。
現在、私はgnome-terminalインスタンスを開き、tun Ctrl+をT4回押して4つのタブを開きます。その後、最初はsshserver1、2番目はsshserver2などを入力して繰り返します。これは非常に迷惑なことです。
私が望むのは「良い」を作ることです。
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
}
だから私は努力しました
gnome-terminal --tab --command "bash -c 'ssh root@server1'"
--tab --command "bash -c 'ssh root@server2'"
ssh
これはタブを開いてingする限り動作しますが、いくつかの問題があります。
私はroot@server1を実行したくなく、sshserver1(私のローカルファイルにエイリアスとして定義されています)を実行したいと思います
.my_bashrc
。それで、このエイリアスを使用できるようにそれをインポートして、何とか使用できるようにしたいと思います。sshコマンドの実行後にリモート
.my_bashrc
ファイルをインポートするには、-rcfileフラグを使用してファイルをインポートするようにエイリアスが定義されているため、エイリアスを使用してこれを実行できます。
新しいタブソースをローカルファイルにする方法が見つからないため、bashrc
エイリアスは機能しません。私のエイリアスが機能しないため、sshにコマンドを実行するように指示できないため、bash -rcfile .my_bashrc
リモートファイルは自動的にインポートされません。bashrc
答え1
alias
変数が使用できないことを覚えているので、を使用してくださいfunction
。
function sshserv {
gnome-terminal --tab --command "
bash -c 'ssh root@$1 \"bash -rcfile .my_bashrc\"'"
}
そして次のように
sshserv server1