그래서 여러 대의 VM을 가진 라우터에 ssh'ing하고 있습니다. LDAP를 사용하여 각 VM이 동일한 파일, 설정 등을 갖도록 설정됩니다. 그러나 서로 다른 코어가 할당되고 다른 라이브러리 및 패키지가 설치됩니다. 각 VM에 개별적으로 로그인하고 명령을 실행하는 대신 스크립트를 .bashrc에 넣음으로써 자동화하려고합니다.LDAP - 여러 VM에 걸친 SSH 스크립트
그래서 내가 지금까지 무엇을 :
export LD_LIBRARY_PATH=/lhome/username
# .so files are in ~/ to avoid permission denied problems
output=$(cat /proc/cpuinfo | grep "^cpu cores" | uniq | tail -c 2)
current=server_name
if [[ `hostname-s` != $current ]]; then
ssh $current
fi
/path/to/program --hostname $(echo $(hostname -s)) --threads $((output*2))
각 VM에 로그인 할 때,이 스크립트를 실행합니다, 그래서 현재의 VM이 SSH 루프를 방지하기 위해 호스트 이름을 가지고 있는지 확인해야합니다. 아이디어는 프로그램을 실행 한 다음 원본을 다시 나가서 스크립트를 다시 시작하는 것입니다. 물론 문제는 로그 아웃 할 때 프로세스가 중단된다는 것입니다.
호스트 이름의 배열에 TMUX를 사용하는 것이 나에게 제안되었지만이 방법에 접근 할 방법이 없습니다.
ssh에서 원격으로 생성 한 하위 셸에서 백그라운드에서 "원격"명령을 실행할 수 없습니까? 즉,'ssh remHost "remCmd &"'. 아니면 요점을 놓치고 있습니까? 행운을 빕니다. – shellter