2012-05-12 1 views
1

제가 개발 프로젝트를하고 있었기 때문에 기본적으로 아이디어는 우리가 파일의 구문 분석을해야하는 Excel VBA 매크로를 가지고 있습니다. 새 파일을 만들고 메인 프레임에서 실행중인 Unix 스크립트에 파일 위치를 보냅니다.유닉스/윈도우 스크립팅 도움 : Windows에서 Unix로 명령 행 매개 변수를 전달하십시오.

매크로를 실행할 때마다 파일의 위치가 다르며 Samba 덕분에 Windows에서 파일을 만들 수 있으며 Unix 시스템에서 즉시 액세스 할 수 있습니다.

이제 문제가 발생합니다. 어떻게 파일의 위치를 ​​전달할 수 있습니까? 이 문제는 plink (퍼티의 버전으로, PC의 레지스트리 대신 프로그램 자체와 나란히 앉아서 구성 파일을 볼 수있게하는 버전입니다)가이 작업을 수행하는 유일한 승인 된 옵션입니다 (Cgywin이이를 매우 쉽게 수행 할 수 있음을 알고 있습니다) 그리고 프로그램은 여러 사람과 네트워크 드라이브에 앉아 아마 그것을 동시에 실행해야합니다. authorized_keys 파일에는 실행해야하는 Unix 스크립트를 가리키는 exec가 있으며 보안상의 이유로 변경할 수는 없습니다. 그러나 Unix에서 이름없는 매개 변수를 사용하고 매개 변수 (파일 위치) 만 명명 된 매개 변수 (--file =/directory/datafile)로 사용하는 스크립트를 실행하는 스크립트를 작성할 수 있습니다.

plink.exe serverIP/directory/datafile (로그인이 이미 구성되어 있음)을 사용하여이 스크립트를 실행하려고 시도했지만 분명히 매개 변수가이 방법으로 전달 될 수 없습니다.

나는 또한 plink.exe serverIP "/ directory/datafile"을 시도했지만 거기에는 운이 없다.

이 작업을 수행하기위한 짧고 깔끔한 방법이 있는지 궁금합니다. 우리는 비슷한 구성으로 샘플 프로젝트를 만들었지 만이를 수행하는 스크립트는 10000 줄을 읽지 않기 때문에 10 줄 또는 20 줄의 짧은 스크립트처럼해야한다고 생각합니다. 필요한 경우 Windows 스크립트를 자유롭게 만들 수 있습니다. 단, 여러 매개 변수로 동시에 여러 세션을 실행할 수도 있습니다.

+1

너무 많은 세부 사항의 자동 연결을 위해 가용 스루풋 사용 '? 행운을 빕니다. – shellter

+2

@shellter : plink를 사용하여 Unix 명령을 실행하고 어떻게 할 수 있는지 궁금해하는 매개 변수를 보내야합니다. 감사! – AZhu

답변

3

ssh를 사용하여 다른 유닉스 시스템에서 하나의 unix 명령을 실행하는 것처럼 plink를 사용하여 Unix 시스템에서 명령을 실행할 수 있어야합니다. 예를

를 들어
plink [email protected] "ls" 

은 마찬가지로 host

ls을 실행 :

plink [email protected] "/absolute/path/to/script/on/unix/machine/script.sh" 

hostscript.sh를 실행해야합니다. 유닉스 시스템에서 (데이터 파일의 경로 이름과 같은 스크립트에 대한 인수를 포함하여) 로컬로 실행하려는 명령을 빌드 한 다음 위와 같이 plink를 사용하여 명령을 실행할 수 있습니다. 하는 수,

plink [email protected] "'/absolute/path/to/script/on/unix/machine/script.sh arg1 arg2'" 

당신은 가용 스루풋 문서로보고 할 수 있습니다 : script.sh 매개 변수를 가지고 있으며, 그들이 읽어지고하지 않을

경우, 스크립트 이름과 따옴표의 매개 변수를 모두 넣어 시도 여기에서 찾을 수 : 특히

http://the.earth.li/~sgtatham/putty/0.62/puttydoc.txt 섹션 7.2.2에서 - 당신이 한 문장에 질문을 단순화 할 수 있습니다, 여기에 구문 분석

+0

실행할 수 있습니다.sh 자체는 문제가되지 않습니다. 문제는 매개 변수를 실행하려고 시도했을 때 ssh 키가 이미이 프로그램을 실행하도록 구성되어 있기 때문에 사용자 @ 호스트 "매개 변수"를 plink하면 어떻게 든 매개 변수가 읽히지 않습니다. – AZhu

+1

그에 따라 내 대답이 편집되었습니다. 유닉스 박스에서 SSH를 통해 다른 스크립트로 스크립트를 돌리는 것이 도움이 될 수 있습니다 ... 이것은 ssh를 통해 전달되어야 할 것이 무엇인지, 그리고 그것이 타겟 시스템에 의해 해석되는 방법을 볼 수있게합니다. 그런 다음 인자를 조정할 수 있습니다 그에 따라 윤곽을 그리기. 인용문은 윈도우와 유닉스 사이에서 급격히 달라 지므로 ssh를 통해 전달되는 것을 명시 적으로 알아두면 도움이됩니다. '윈도우 사이드에서 어떻게 포맷합니까?' –

관련 문제