rate -c 192.168.122.0/24
명령을 내 Centos 컴퓨터에서 실행하고 shell_exec('rate -c 192.168.122.0/24')
명령을 사용하여 해당 명령의 출력을 텍스트 파일에 기록하려고합니다. 아직도 운이 없다!php shell_exec()를 사용하여 텍스트 파일을 가져옵니다.
답변
에 저장할 수 있습니다, 당신의 명령을 제공하는 비 출력 스트림 종료. 실시간으로 출력을 읽으려면 popen을 사용해야합니다. PHP의 웹 사이트에서
예 :
$handle = popen('/path/to/executable 2>&1', 'r');
echo "'$handle'; " . gettype($handle) . "\n";
$read = fread($handle, 2096);
echo $read;
pclose($handle);
당신은 단지 파일과 같은 프로세스 출력을 읽을 수 있습니다.
예이 작품은 아주 잘 당신의 도움에 대단히 고마워요 정말 고마워. –
당신이 PHP를 필요로하지 않는 경우, 당신은 단지 쉘에서 그것을 실행할 수 있습니다
shell_exec('rate -c 192.168.122.0/24 > file.txt');
은 ">"문자 리디렉션 : 당신이 PHP에서 실행해야하는 경우
rate -c 192.168.122.0/24 > file.txt
커멘드의 파일에의 출력.
그럼 명령을 직접 실행하면 출력이 나옵니까? "> file.txt"의 유무에 관계없이 이것은 텍스트 파일이 비어있는 경우 이상합니다. 즉, 명령이 결과를 인쇄하지 않음을 의미합니다. –
답장을 보내 주셔서 감사합니다. 터미널에서 명령을 실행할 때 비 종료 출력 스트림을 출력 할 수 있습니다. –
@Roshan : "사용 권한 문제"에 부딪 혔습니까? 위의 명령 줄에'2> & 1'을 추가하십시오. 나는 PHP에서 임의의 명령을 실행할 수 있는지 의심 스럽다. –
또한 PHP를 통해 출력을 얻을하고 당신이 언급하는 것을 잊었다으로 텍스트 파일
$output = shell_exec('rate -c 192.168.122.0/24');
$fh = fopen('output.txt','w');
fwrite($fh,$output);
fclose($fh);
아무 행운의 친구도 아무것도 텍스트 파일에 쓰지 않아 –
$path_to_file = 'path/to/your/file';
$write_command = 'rate -c 192.168.122.0/24 >> '.$path_to_file;
shell_exec($write_command);
희망이 도움이됩니다. : D 그리고 이것은 좋은 길로 인도합니다. https://unix.stackexchange.com/a/127529/41966
어떤 문제가 있습니까? – alex
'rate' 명령이 존재합니까? 커맨드 라인에서 작동합니까? – mario
명령을 실행 한 후 터미널에 무엇을 얻을 수 있는지 말해 줄 수 있습니까? –