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, 두 번째에는 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