클러스터에서 실행할 작업을 제출하려고 합니다. 이는 sbatch
커밋 스크립트를 작성하여 수행됩니다. 이 작업에는 R 3.1.3을 열고 서버에서 참조된 R 스크립트를 실행하는 작업이 포함됩니다.
이것은 내가 작성한 쉘 스크립트입니다.
#!/bin/bash
#SBATCH --account=810639
#SBATCH --time=1200
#SBATCH --mem-per-cpu=4096
#SBATCH --ntasks=1
#SBATCH --constraint=normalmem
#SBATCH --output=output_%j.txt
#SBATCH --error=error_output_%j.txt
#SBATCH --job-name=AggrigatePIXEL
#SBATCH --partition=ESG_Std
#SBATCH --mail-type=FAIL
#SBATCH [email protected]
# print date and time
module load R/3.1.3
module load geos/gcc/64/3.4.2
module load netcdf/gcc/64/4.3.3
module load gdal/gcc/64/1.11.1
source('AggrigatePIXEL_Forecast_easyVerfication_SERVERversion.R')
yate.sh로 저장된 쉘 스크립트를 실행하려고 하면 다음과 같은 오류 메시지가 나타납니다.
./yate.sh: line 20: syntax error near unexpected token
'AggrigatePIXEL_Forecast_easyVerfication_SERVERversion.R'
./yate.sh: line 20:
source('AggrigatePIXEL_Forecast_easyVerfication_SERVERversion.R')
문제는 R 프로그램을 먼저 실행해야 하는 .R 스크립트를 열고 실행하는 것과 관련이 있다는 것을 알고 있습니다. 누구든지 이것을 쉘 스크립트에 표시하는 방법을 도와줄 수 있습니까?
답변1
저는 R에 익숙하지 않지만 귀하의 스크립트는 R 스크립트가 아닌 bash 스크립트로 실행하려고 합니다. 첫 번째 줄을 #!/usr/bin/Rscript
또는 로 변경하세요 #!/usr/bin/env Rscript
. 시스템에서 R이 있는 경로를 변경해야 할 수도 있습니다.
~에 따르면http://stat.ethz.ch/R-manual/R-devel/library/utils/html/Rscript.html다음 예와 같이 시작해야 합니다.
#! /path/to/Rscript --vanilla --default-packages=utils
args <- commandArgs(TRUE)
res <- try(install.packages(args))
if(inherits(res, "try-error")) q(status=1) else q()`
답변2
source() 대신 Rscript를 사용하여 다음을 실행합니다.
Rscript AggrigatePIXEL_Forecast_easyVerfication_SERVERversion.R