노드의 child_process module을 통해 명령을 실행할 수 있습니다. 예를 들어, spawn function을 사용하면 함께 명령 할 수 있습니다 (한 명령의 출력을 다른 명령 입력에 파이프하는 것을 의미). 당신이있는 거 명령은 파이프의 꽤 많이 가지고 있지만, 문서에서 예제로, 여기에서 실행할 수있는 방법은 ps ax | grep ssh
: 다음 질문으로
var spawn = require('child_process').spawn,
ps = spawn('ps', ['ax']),
grep = spawn('grep', ['ssh']);
ps.stdout.on('data', function (data) {
grep.stdin.write(data);
});
ps.stderr.on('data', function (data) {
console.log('ps stderr: ' + data);
});
ps.on('close', function (code) {
if (code !== 0) {
console.log('ps process exited with code ' + code);
}
grep.stdin.end();
});
grep.stdout.on('data', function (data) {
console.log('' + data);
});
grep.stderr.on('data', function (data) {
console.log('grep stderr: ' + data);
});
grep.on('close', function (code) {
if (code !== 0) {
console.log('grep process exited with code ' + code);
}
});
:
수의 출력 명령을 캡처하여 객체/배열에 저장합니까?
당신이 당신의 마지막 명령의 데이터를 얻을
은 (당신이 보낼 것이기 때문에 다음 명령의
stdin
은 각 명령의
stdout
), 텍스트의 개별 라인을 잡아 문자열을 구문 분석 할 수 있습니다. 예를 들면 다음과 같습니다.
문자열 명령을 함께 사용할 수있는 방법에 대한 아이디어를 제공하고 명령이 완료되면 결과를 구문 분석 할 수 있기를 바랍니다. 그게 도움이 되니?
Node.js는 관리 도구를 대체하지 않으므로 이미 사용 가능한 것을 사용하지 않는 이유는 무엇입니까? 주장하시는 분은 https://www.npmjs.org/package/netstat를 방문하십시오. 또한 "netstat가 설치되어 있어야합니다. 이것은 netstat 대신 사용할 수 있으며 래퍼 만 사용할 수 있습니다. 대부분의 유닉스 계열 시스템에서는 기본적으로 net-tools 패키지에서 제공해야합니다." – alandarev
@alandarev 10 개의 서로 다른 포트에 연결된 IP 주소를 표시하는 편리한 페이지를 원할 것입니다. 따라서 노드가 웹 페이지에 표시하면 유닉스 명령을 10 번 실행하고 데이터를 이해하는 것보다 낫습니다. 명령의 출력을 캡처하여 객체/배열로 저장할 수 있습니까? – Nyxynyx