루비 스크립트에서 한 줄 ssh 호출을 만들려고합니다. 내 스크립트는 호스트 이름을 취한 다음 호스트 이름의 시스템 정보를 반환하도록 설정합니다.% x를 사용하여 ruby 내에서 SSH 호출
return_value = %x{ ssh #{hostname} "#{number_of_users}; #{number_of_processes};
#{number_of_processes_running}; #{number_of_processes_sleeping}; "}
여기서 변수는 이와 같이 형식이 지정됩니다.
number_of_users = %Q(users | wc -w | cat | awk '{print "Number of Users: "\$1}')
number_of_processes = %Q(ps -el | awk '{print $2}' | wc -l | awk '{print "Number of Processes: "$1}')
은 둘 다 % q를 %의 Q, 그냥 일반 "을"시도와 나는 AWK 출력하기 전에 무엇을 인쇄 할 수 없습니다. (필자는 콜론을 포함 할 경우) 나도
awk: line 1: syntax error at or near :
을이 오류 또는 I $ 1의 앞에 슬래시를 포함하지 않으면 난 그냥 그 라인 빈 출력을 얻을. 이것에 대한 해결책이 있습니까? 나는 % q를 사용했기 때문에 그것이 될지도 모른다고 생각했지만, 큰 따옴표로도 일어납니다.
고맙습니다. 위의 내용을 사용하는 많은 명령을 개선 할 수 있습니다. ps -el | awk '{print $ 2}'| grep 'R'| wc -l | awk '{print "실행중인 프로세스 수 :"$ 1} "및'grep'모델 이름 '/ proc/cpuinfo | 유니크 | cut -d : -f2 | cut -d @ -f1 | awk '{print "모델 이름 :"$ 0} "'하지만 내 질문에는 실제로 대답하지 않았습니다. – snowe
@ snowe2010 : 죄송합니다. 위의 업데이트를 참조하십시오. 건배. – Steve