2012-06-04 3 views
1

3 가지 백그라운드 작업을 자주 만들고 내 Rails 응용 프로그램에서 이러한 작업의 일부 셸 명령을 실행하려고합니다. 배경 작업을 위해 delayed_job을 사용하는 것에 대해 생각하고 있었지만 레일즈 앱에서 셸 명령을 안전하게 실행하는 방법을 잘 모르겠다. 누군가 레일스 앱에서 어떻게 할 수 있는지 말해 줄 수 있습니까?Rails 앱의 백그라운드 작업 및 셸 명령

제프

답변

4

모두 Rubyisms입니다.

system('cmd','arg1',...) 

또는 매우 Unixy

val = `ls -l` 

명령을 실행하고 변수 발에 출력의 반환 후자.

+0

나는 system()과 back tick을 알고 있지만 이것은 나쁜 생각처럼 보입니다. 무슨 뜻입니까? http://docs.python.org/library/subprocess.html#module-subprocess와 같은 Ruby/Rails에는 무엇이 있습니까? (내 배경은/py입니다.) 아파치와 같은 권한있는 프로세스에서 시스템 명령을 실행하는 것은 보안 문제와 같아서 파이썬에서 서브 프로세스 모듈과 비슷하거나 비슷한 것을 찾고 싶습니다. – JeffC

+0

잠재적 인 보안 구멍이 있습니다. 시스템에 넘겨주는 것이 유효한지 확인해야합니다. 나는 그것을 광범위하게 사용하지만, 시스템에 건네지는 것은 결코 사용자 입력으로부터 나오지 않는다. 그래서 그것은 나를 위해 작동한다. 관련 질문이 있습니다. http://stackoverflow.com/questions/4650636/forming-sanitary-shell-commands-or-system-calls-in-ruby – RadBrad

+0

위대한! 어떤 데이터도 내 사용자로부터 오는 것이 아니지만 항상 모든 보안 허점에 대해 우려하고 있습니다. 나는이 솔루션을 조사 할 것이다. – JeffC