로그인한 서버/파일 시스템을 기반으로 환경 변수를 어떻게 설정합니까?

로그인한 서버/파일 시스템을 기반으로 환경 변수를 어떻게 설정합니까?

어리석은 질문일 수도 있지만 어디서부터 시작해야 할지 모르겠습니다. 대학에는 서로 다른 클러스터에 액세스하는 두 개의 파일 시스템이 병렬로 실행되는 슈퍼컴퓨터 클러스터 배열이 있습니다. 그들은 독립적이지만 동일한 로그인 프로필을 사용합니다. 즉, SSH 로그인에 동일한 자격 증명을 사용할 수 있으며 동일한 bashrc파일 등을 사용합니다.

내 작업 흐름에서는 (좋든 나쁘든) 모든 코드가 발견되고 출력이 저장되는 경로를 지정하는 환경 변수를 설정해야 합니다. 이것은 내가 로그인한 클러스터에 따라 다릅니다(파일 시스템이 다르기 때문입니다). 문제는 이 환경 변수를 설정하면 bashrc두 시스템 모두에서 동일하다는 것입니다.

내가 로그인한 서버에서 다른 값을 얻도록 이 환경 변수를 설정하는 방법이 있습니까?

분명히 이 작업을 수동으로 수행할 수도 있지만 항상 잊어버리고 매번 시뮬레이션 시간이 하루 이상 소요됩니다.

결국 모든 것을 새로운 파일 시스템으로 마이그레이션하려는 의도인 것 같지만 지금은 모든 리소스에 액세스하려면 별도의 파일 시스템을 처리해야 합니다.

답변1

파일 에는 명령문이 .bashrc포함될 수 있습니다 if. 당신은 다음과 같은 것을 할 수 있습니다

if [ "${HOSTNAME}" == "HostA" ]
then
  MYVAR=x
else
  MYVAR=y
fi

또 다른 접근 방식은 바인드 마운트(또는 심볼릭 링크)를 수행하여 파일 시스템을 표준화하는 것일 수 있지만 이 접근 방식은 실제로 차이점과 같은 주요 세부 사항에 따라 달라집니다.

관련 정보