누구나 스크립트를 제출하는 다음 방법의 차이점을 말해 줄 수 있나요?
$ qsub script_name.sh
및
./script_name.sh
작업을 클러스터에 제출하는 위의 두 가지 방법의 차이점은 무엇입니까?
또한 때때로 입력해야하는 이유 :
$ chmod +x script_name.sh
… ./script_name.sh
작업을 제출 하시겠습니까? 때때로 qsub script_name.sh
를 입력해야하는 이유는 무엇입니까?
죄송합니다. 저는 Unix에 익숙하지 않습니다.
댓글
- qsub 란 무엇입니까? _
- @HaukeLaging-내 답변보기
답변
컴퓨팅 클러스터를 사용하십니까?
qsub
에 대해 질문했기 때문에 “ GridEngine 또는 일부 컴퓨터 클러스터링 제품 .
qsub
qsub script_name.sh
“클러스터”의 헤드 노드에 해당 서버에서 실행할 스크립트를 제출할 것입니다. 따라서 해당 서버는 스크립트가 포함 된 동일한 파일 시스템에 액세스 할 수 있어야합니다. 예를 들어 스크립트가 /home/myusername/script_name.sh
에있는 경우이 파일은 두 서버에서 모두 액세스 할 수 있어야합니다. qsub
명령을 실행하고있는 컴퓨터와 script_name.sh
를 실행할 클러스터의 모든 노드
스크립트 실행
스크립트를 실행할 때 ./script_name.sh
클러스터에서 아무것도 실행하지 않습니다.이 스크립트는 체계. “명령을 사용하여 클러스터 qsh
에서 쉘을 얻은 경우 클러스터의 스케줄러 노드가 쉘을 제공하기로 결정한 노드에서이 명령을 실행합니다.
권한
스크립트를 만들고 실행하려고 할 때마다 스크립트의 권한을 변경하여 시스템에 의도를 알려야합니다. 파일이 실행 가능합니다. 그렇지 않으면 파일은 스크립트가 아니라 텍스트 파일입니다.
다음과 같은 파일 권한을 볼 수 있습니다.
일부 스크립트
$ cat script_name.sh #!/bin/bash echo "hello world"
실행 불가
$ ls -l script_name.sh -rw-rw-r--. 1 saml saml 32 Feb 25 18:11 script_name.sh $ ./script_name.sh bash: ./script_name.sh: Permission denied
실행 가능
$ chmod +x script_name.sh $ ls -l script_name.sh -rwxrwxr-x. 1 saml saml 32 Feb 25 18:11 script_name.sh $ ./script_name.sh hello world
댓글
- 안녕하세요, 답장 해 주셔서 감사합니다. 하지만 " ' 클러스터에서 셸을 얻기 위해 명령을 사용했다면 그 의미에 대해 약간 혼란 스럽습니다. , qsh, 그러면 ' 클러스터가 셸을 제공하기로 결정한 '의 스케줄러 노드에서이 명령을 실행합니다. "
- @john_w-여기서 어떤 클러스터링 기술을 사용하고 있습니까? GridEngine이나 다른 것?
- 안녕하세요, 클러스터링 기술이 무슨 뜻인지 잘 모르겠습니다. 저는 매우 초보자입니다. bashrc 파일이 있다는 것을 알고 있습니다. GridEngine을 어떻게 찾습니까? 확인하려면 명령 줄에 명령을 입력해야합니까?
- 또한 다른 스크립트를 호출하는 스크립트가 있습니다. start_prephasing.sh 스크립트는 start_prephasing.sh의 루프를 사용하여 prephasing.sh를 호출합니다. qsub를 사용하여 star_prephasing.sh를 제출했지만 " / var / spool / n1ge / cn-r10-7 / job_scripts / 4304571 : line 9 : qsub : 명령을 찾을 수 없습니다 ". 그러나 chmod + x start_prephasing.sh를 입력하면 prephasing.sh의 22 개 작업이 성공적으로 실행됩니다. 이유를 잘 모르겠습니다. ' qsub start_prephasing.sh와 ./start_prephasing.sh의 차이점을 아직 완전히 이해하지 못하는 것 같습니다.
- 이것은 start_prephasing.sh 스크립트에있는 것 : # $ -S / bin / bash # $ -cwd export HOME = / adp / home / hswong / CACTI / imputation / prephasing let a = 1 b = 22 while [$ a -le $ b] do qsub -q long.q -o ~ / queue -e ~ / queue prephasing.sh $ a #qsub -pe parallel 4 -q parallel_long.q -o ~ / queue -e ~ / queue prephasing.sh $ a = $ a + 1 완료