제 일반적인 질문은 다음과 같습니다. 원격 서버에 로그인하고, 계속 실행되는 프로세스를 시작하고, 해당 프로세스의 표준 출력을 로컬 컴퓨터의 파일로 리디렉션하고,이 모든 작업을 백그라운드에서 (로컬 기계)?
보다 구체적으로, 원격 Raspberry Pi의 tshark 출력을 내 로컬 컴퓨터 (실제로는 Cygwin을 실행하는 Windows가있는 다른 원격 컴퓨터-긴 이야기)로 파이프하고 로그 파일에 기록하려고합니다. 출력 리디렉션없이 명령을 실행하여 시작했습니다.
ssh pi@remotehost "\
sudo tshark \
-i wlan1mon \
-I -l -f broadcast \
-Y wlan.fc.subtype==4 \
-T fields \
-e wlan.sa \
-e frame.time_epoch"
이것은 내가 예상했던대로 작동하는 것 같습니다. 터미널에서 데이터 스트림을 얻습니다. 다음으로 출력 리디렉션을 추가하려고했습니다.
ssh pi@remotehost "\
sudo tshark \
-i wlan1mon \
-I -l -f broadcast \
-Y wlan.fc.subtype==4 \
-T fields \
-e wlan.sa \
-e frame.time_epoch" \
> /var/tshark.out
이것은 또한 예상대로 작동하는 것 같습니다. 터미널에 작성된 표준 오류가 표시되고 프로세스를 종료하고 출력 파일 (/var/tshark.out)을 확인한 후 tshark의 표준 출력이 표시됩니다. 다음으로 내 컴퓨터의 백그라운드에서 이것을 실행하려고합니다.
ssh pi@remotehost "\
sudo tshark \
-i wlan1mon \
-I -l -f broadcast \
-Y wlan.fc.subtype==4 \
-T fields \
-e wlan.sa \
-e frame.time_epoch" \
> /var/tshark.out &
불행히도 이것은 원하는 효과가 없습니다. 출력 파일을 확인하면 비어 있고 작업 상태를 확인하면 ( "jobs"명령을 실행하여) 중지 된 것을 알 수 있습니다. 다음은 작업의 출력입니다 (가독성을 위해 약간 다시 포맷했습니다).
[1]+ Stopped ssh pi@remotehost
"sudo tshark
-i wlan1mon
-I -l -f broadcast
-Y wlan.fc.subtype==4
-T fields
-e wlan.sa
-e frame.time_epoch"
> /var/tshark.out &
이로 인해 원격 및 로컬 프로세스 모두에서 백그라운드 및 nohup-ing의 다양한 순열을 시도했지만 아무 소용이 없었습니다.
에 대한 -f
스위치를 사용하면 ssh
인증 및 기타 잠재적 인 대화 형 단계 후에 명령이 백그라운드로 전송됩니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다