스크립트에서 qm(qemu) 출력 사용

스크립트에서 qm(qemu) 출력 사용

QEMU 에이전트를 사용하여 스크립트 내부에서 QEMU VM 부팅이 완료되었는지 확인하려고 합니다.

문제는 출력을 변수에 할당하거나 파일에 파이프할 수도 없다는 것입니다.

[root@node1 dir]# isrunning=$(qm agent 1234 ping)
VM 1234 is not running
[root@node1 dir]# echo $isrunning

[root@node1 dir]# isrunning=`qm agent 1234 ping`
VM 1234 is not running
[root@node1 dir]# echo $isrunning

[root@node1 dir]# qm agent 1234 ping > /tmp/qmclonevm
VM 1234 is not running
[root@node1 dir]# echo /tmp/qmclonevm 
/tmp/qmclonevm
[root@node1 dir]# qm agent 1234 ping | tee /tmp/qmclonevm
VM 1234 is not running
[root@node1 dir]# cat /tmp/qmclonevm 
[root@node1 dir]# 

나는 qm이 평소처럼 단순히 stdout으로 인쇄할 것이라고 가정했는데, 그렇지 않은 것 같습니다.

여기서 무슨 일이 일어나고 있는지, 해당 문제를 해결하는 방법을 아는 사람이 있습니까? 아니면 VM이 완전히 부팅되었는지 확인하기 위한 다른 솔루션을 제공할 수 있는 사람이 있습니까?

답변1

바꾸다

ping

~와 함께

ping 2>&1

qm의 stderr을 stdout으로 리디렉션합니다.

관련 정보