SSHFS를 통해 /proc/파일(procfs)에 액세스하는 방법

SSHFS를 통해 /proc/파일(procfs)에 액세스하는 방법

Ubuntu 16.04(업데이트 제안을 제공하지 마십시오)가 설치된 시스템을 사용하여 /proc/Raspberry Pi 3B+(Linux 커널 버전 4.19.88)에 SSHFS를 통해 설치했습니다.

sshfs [email protected]:/proc ~/procAtPi
ls -la ~/procAtPi

SSH를 통해 직접 연결한 것처럼 lsPi의 모든 파일이 문제 없이 표시됩니다 . /proc하지만 를 사용하여 파일을 읽으려고 하면 cat여기에 아무것도 표시되지 않습니다. 파일 내용은 다음을 통해 직접 연결할 때만 나에게 출력됩니다.

user@remote:~$ ssh [email protected]
[email protected]:~$ cat /proc/stat

SSHFS를 통해 액세스된 procfs에서 파일을 읽는 방법은 무엇입니까?

나는 또한 몇 가지 관찰을 했습니다.

  • sudo cat ~/procAtPi/stat결과를 사용 하면 Access denied(그래서 루트는 일반 사용자보다 액세스 권한이 적은 것 같습니까?) 파일 소유자는 루트입니다.

    user@remote:~$ ls -lai ~/procAtPi/stat
          16 -r--r--r--   1 root             root                0 Dez 24 00:00 stat
    
  • 표시되는 소유자는 액세스 권한에 따라 다릅니다.

    user@remote:~$ ls -lai ~/procAtPi/
         ...
         171 dr-xr-xr-x   1 user             user                0 Jan 20 09:18 11045
         ...
    [email protected]:~$ ls -lai /proc/
         ...
    2035700 dr-xr-xr-x   8 pi               pi                  0 Jan 20 09:18 11045
         ...
    
  • Pi의 sysfs( ) /sys/에 있는 파일에 대한 원격 액세스가 제대로 작동하는 것 같습니다.

/proc/stat현재 솔루션은 데이터를 읽고 TCP를 통해 사용할 수 있도록 하는 Pi에서 서버를 실행하는 것입니다 . 그러나 이렇게 하려면 매번 수동으로 서버를 시작해야 합니다(항상 필요한 것은 아니기 때문에 자동 시작을 원하지 않습니다). 내 Pi 클러스터를 모니터링하는 유사한 프로그램 proc/stat에 액세스해야 합니다 .htop

답변1

lsPi의 모든 파일은 /proc내가 직접 전달한 것처럼 문제 없이 표시됩니다. 그러나 다음을 사용하여 ssh파일을 읽으려고 하면cat

해결 방법으로 -o direct_io다음 옵션을 사용하십시오 sshfs.

# sshfs localhost:/proc /mnt/tmp
root@localhost's password:
# cat /mnt/tmp/self/stat
<nothing!>
# umount /mnt/tmp

# sshfs -o direct_io localhost:/proc /mnt/tmp
root@localhost's password:
# cat /mnt/tmp/self/stat
8242 (sftp-server) R 8236 8242 8242 0 -1 4194560 335 0 0 0 0 0 0 0 20 0 1 0 1846105 2506752 441 18446744073709551615 94732486082560 94732486157085 140730261312560 0 0 0 0 0 0 0 0 0 17 3 0 0 0 0 0 94732486190800 94732486194248 94732486483968 140730261319328 140730261319357 140730261319357 140730261319643 0

바라보다여기이 옵션이 수행하는 작업에 대한 설명입니다.

아래 파일의 문제점 /proc은 크기가 0인 일반 파일로 표시되지만 비어 있지 않고 읽을 때 데이터를 포함한다는 것입니다.

이 문제는 SFTP 프로토콜로 인해 발생한 것이 아니며 에 국한된 것도 아닙니다 sshfs.

관련 정보