2012-06-26 5 views
0

짧은 이야기 : (CMD 배치를 사용하여) 클라이언트에서 서버 (BASH 사용)에서 파일의 쓰기 상태를 가져 오는 방법이 필요합니다.쿼리 파일 쓰기 일괄 처리 (CMD 클라이언트에서 BASH 서버로)

장기간 lurker, 처음 포스터. 내가 찾고있는 유사 콘텐츠에 대한 많은 검색을 수행했지만 아직 충분한 데이터를 찾지 못했습니다.

(클라이언트가 알 수없는 패키지가 설치된 WinOS [XP - up] 일 수 있기 때문에) CMD에 배치 파일을 쓰고 있습니다. 배치는 puTTY의 "plink"를 사용하여 SSH를 통해 서버에 연결합니다. 서버에 연결되면 plink는 새 파일에 데이터를 쓰는 명령을 실행합니다. 파일이 작성되면 PSCP를 사용하여 파일을 클라이언트에 복사합니다. 지금까지는 그렇게 좋았습니다. 나는이 모든 것을 성공적으로 수행했다.

해당 파일의 생성은 즉시 발생하지만 모든 데이터를 쓰는 데 걸리는 시간은 알려지지 않았거나 가변적입니다. 따라서 파일을 완료 한 시점을 확인한 후 복사하는 자동화 된 방법이 필요합니다. 상황에 따라 XX 초 동안 단순히 시간 초과/절전을 사용하는 것은 불가능합니다.

필자가 지금까지 취한 접근법은 "stat -c '% s'filemane"을 사용하여 파일 크기를 반복적으로 잡아서 grab1 EQU grab2가 완료 될 때까지 루프에서 실행하는 것입니다. 나는 그것을 처리하기 위해 CMD 배치에 stat의 출력을 얻을 수 없기 때문에이 어려운 것을 발견하고있다.

1 :이 방법 (통계 결과가 반복적으로 CMD로 전달됩니까?)이 최선의 방법입니까? BASH에 뭔가가있을 수 있습니까?

Q2 : Q1이 참이면 통계 결과를 구문 분석/분석하기위한 변수로 CMD 배치에 가져 오는 방법에 대한 아이디어가 있습니까?

미리 제안 해 주셔서 감사합니다. DCT

+0

왜 PLINK가 종료되기 전에 파일을 완료하는 명령을 내릴 수 없습니까? – Ben

+0

파일을 만들고 쓰는 프로그램을 제어 할 권한이 없습니다. 일단 "파일 만들기"명령을 내리면 성공 메시지로 응답하지만 파일이 반드시 완료되지는 않습니다. 성공 메시지가 파일 완성에 "연결"되면이 문제를 해결할 필요가 없습니다. – DCT

+0

"CMD 배치에 stat 출력을 처리 할 수 ​​없기 때문에이 작업을 어렵게 생각합니다." 명령에서 출력을 CMD.EXE로 처리하는 과정에서 설명하는 어려움 때문에 CMD 대신 WSH/VBScript를 사용하는 것이 좋습니다. – Ben

답변

0

파일을 쓰는 명령에 임시 파일 이름을 쓰십시오. 따라서 xyz.txt이라고하면 파일 이름이 tmpxyz.txt.tmp으로 작성되고 마지막 단계는 이름이 바뀝니다.

그런 식으로 명명 된 파일이 있는지 확인할 수 있습니다.

일반적으로 파일에 고유 한 이름을 지정하는 것이 좋습니다. 아마도 날짜와 시간을 통합했을 것입니다.

+0

Ben에게 답해 주셔서 감사합니다. 파일 작성시기를 결정해야합니다. 프로그램이 파일 쓰기를 완료하지 않았다면 전송할 수 없습니다. – DCT

관련 문제