2015-01-07 3 views
1

나는이 프로그램을 어제 코딩했으며 실제로 CRON으로 실행할 때를 제외하고는 실제로 작동했습니다. 오늘은 같은 스크립트를 실행했지만 작동하지 않습니다. 스크립트는 Tracebacks Errors없이 실행되며 ClearCase보기에서 최상위 폴더 (vob)를 복사하지만 대상 폴더 아래의 폴더 및 파일에 실제 중요한 데이터는 복사하지 않습니다.Python ClearCase Vobs Popen 암호 BASH 프로그램 스케치

여기 내 파이썬 스크립트입니다.

def obtainCode(view="My_VIEW", folder="/my_folder"): 
    """Download code from ClearCase's File System and put it on the hard-drive""" 

    dest = '/etc/foo' 
    password = 'passwords' 

    v1 = subprocess.Popen(['cleartool', 'setview', view], shell=True, stdout=subprocess.PIPE) 
    print "v1 = ", v1 
    print "view maybe set :/" 

    c1 = subprocess.Popen(['sudo', '-p', '', '-S', 'cp', '-r', folder, dest], stdin=subprocess.PIPE) 
    c1.stdin.write(password + '\n') 
    c1.stdin.close() 
    c1.wait() 

    #### Close View and Stop Processes #### 
    v2 = subprocess.Popen(['cleartool', 'endview', view], shell=True, stdin=v1.stdout, stdout=subprocess.PIPE) 


    v2.kill() 
    v1.kill() 

사람이 알고 있나요 : 1) 잘못이) 왜 어제가 아니라 오늘 일 것입니다 무슨 일 3) 더 좋은 방법은이 일을?

시간과 노력에 감사드립니다.

+0

'dest' 위치에'folder' 변수의 이름이 있지만이 폴더 아래에 실제 데이터가 없습니다. 어제는 '폴더'아래에 중요한 모든 것을 복사하는 것으로 작동했습니다. – user3870315

+0

예. 내가 BASH에서 실행할 때 ClearCase 뷰에 있고'sudo cp -r/my_data/etc/foo'를 실행하고 모든 것을 재귀 적으로 대상 위치에 복사합니다. 그래서이 파이썬은 당신의 시스템에서 작동합니까? 이전에 CRON을 조정하려고하는 환경 변수를 엉망으로 만들었는지 궁금합니다. – user3870315

+0

흥미 롭습니다. 의견에 감사드립니다. – user3870315

답변

0

시도해보고 setview을 사용하지 마세요.
필요 없으며 대신보기의 전체 경로를 사용할 수 있습니다.

cleartool startview yourDynamicView 
cd /view/yourDynamicView/vobs/yourVob 

setview ("Python and ClearCase setview")를 사용할 위험성이 있습니다.
하위 프로세스 내에 하위 프로세스를 생성합니다. 여기서는 필요하지 않습니다.

+0

동적보기를 하드 코딩해야합니까? 나는보기의 전체 경로를 모른다. – user3870315

+0

@ user3870315 하드 코딩이 필요하지 않습니다. 동적 뷰의 이름을 아는 한 해당 뷰의 전체 경로를 작성할 수 있습니다. setview는 필요하지 않습니다. – VonC

+0

도움에 감사드립니다. 나는 그 전망에 대한 완전한 길을 발견했다고 생각한다. 이 코드로 코드를 작성하고이 코드가 제대로 작동하는지 살펴 보겠습니다. 다시 감사합니다. : D – user3870315