crontab에서 모듈을 사용하는 방법

crontab에서 모듈을 사용하는 방법

"사용 가능한 모듈"을 입력하면 사용 가능한 모듈 정보가 표시됩니다.

--------------------------------- /tool/applic/module-3.2.10/Modules/3.2.10/modulefiles ----------------------------
Applic/Abaqus_2016_sp1       Applic/FDTD-8.15.716-1       Applic/Raphael_2006.12-SP2   Applic/Synopsys_sx_C2009-sp1

이 정보를 1분마다 저장하고 싶습니다. 사용하여예약 된 일들.

그래서 "crontab -e"를 사용하고 이렇게 편집합니다.

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
*/1 * * * * module add something
*/1 * * * * module list >> croninfo.txt     
*/1 * * * * module available >> croninfo.txt

하지만croninfo.txt비었다. "모듈"이 작동하지 않는 것 같습니다.

모듈을 추가할 수 있도록 모듈을 작동시키려면 어떻게 해야 합니까?

답변1

여기에는 두 가지 분명한 가능성이 있습니다.

cron먼저, 해당 명령이 실행되는 환경은 일반적으로 로그인 세션에서 시작된 대화형 셸에서 얻을 수 있는 환경과 매우 다르다는 점을 기억해야 합니다 . 직업을 추가하여 이 문제를 해결한 것 같지만 PATH기억해 두는 것이 중요합니다. 이에 대한 보충으로,cron은 명령을 실행하고 현재 작업 디렉터리는 소유자 사용자의 홈 디렉터리로 설정됩니다., 따라서 원하는 것이 아니라면 적절하게 조정해야 합니다.

둘째, 동일한 시간 지정자를 가진 명령은 정의되지 않은 순서로 실행됩니다. 당신이 글을 쓸 때

*/1 * * * * module add something
*/1 * * * * module list >> croninfo.txt
*/1 * * * * module available >> croninfo.txt

순차적으로 실행된다고 생각하실 수도 있지만 실제로는cron은 현재 원하는 순서대로 자유롭게 실행할 수 있습니다.각 명령을 시작하고 실행하는 데 걸리는 시간에 따라 여러 다른 명령을 동시에 실행할 수 있습니다.

일련의 명령을 순차적으로 실행하려면가장 좋은 접근 방식은 명령을 올바른 순서로 실행하는 간단한 스크립트를 만들고 cron에서 해당 스크립트를 실행하는 것입니다.

이렇게 하면 유사한 방법을 사용하여 #!/bin/bash -x스크립트 실행에 대한 자세한 내용을 얻을 수 있으므로 문제를 정확히 찾아내는 데 도움이 될 수 있습니다.

/1그런데 지정자가 필요하지 않으며 *정상적인 */1cron 구현에서도 동일합니다. 지정자는 1 이외의 값을 원할 때 /n더 유용합니다 . n예를 들어 3분마다 명령을 실행합니다( */3처음 지정자 필드에서).

관련 정보