smbclient를 사용하여 가상 /proc 디렉토리에서 파일을 읽는 방법이 있습니까?

smbclient를 사용하여 가상 /proc 디렉토리에서 파일을 읽는 방법이 있습니까?

/proc가상 디렉터리에서 파일을 읽는 데 사용할 수 있는 방법이 있습니까 smbclient?

루트 액세스가 없습니다. 서버와 클라이언트는 모두 Debian Linux 시스템입니다. 서버가 Samba 3을 실행 중입니다. Smbclient 버전은 4.0.6-Debian입니다.

smbclient의 대화형 모드를 사용하여 서버의 /proc 파일 시스템에서 파일을 복사하면 get /proc/cpuinfo빈 파일이 복사됩니다.

답변1

smbclient/smbget은 파일을 연 후 크기를 확인하지 않기 때문에 파일을 복사할 수 없습니다. 권한과는 아무런 관련이 없습니다.

크기가 0이라고 보고되는 경우에도 proc에서 원격 파일을 복사할 수 있으므로 돌핀(kde 파일 관리자)에서 어떻게 수행되는지 확인해야 합니다. git clone git://anongit.kde.org/kde-baseapps를 통해 소스 코드를 얻을 수 있지만 smb 처리가 포함되어 있는지 확실하지 않습니다.

무엇을 하려는지 모르겠지만 /proc/cpuinfo의 내용을 "일반" 파일에 복사하고 smb를 통해 해당 파일을 가져오는 간단한 스크립트를 서버에 작성할 수 있습니다.

다른 컴퓨터에서 /proc 파일의 내용을 가져오려는 경우(삼바가 아닌) cgi 스크립트 등을 사용해 볼 수 있습니다.

현재 CPU 사용량을 표시하기 위해 제가 작성한 예제 스크립트는 다음과 같습니다.

#!/bin/bash

echo Content-type: text/plain
echo


PREV_TOTAL=0
PREV_IDLE=0

CPU=(`cat /proc/stat | grep '^cpu '`) # Get the total CPU statistics.
unset CPU[0]                          # Discard the "cpu" prefix.
PREV_IDLE=${CPU[4]}                        # Get the idle CPU time.
PREV_TOTAL=(`cat /proc/stat | grep '^cpu ' | awk '{ sum = $2 + $3 + $4 } END { print sum }'`)

# Calculate the CPU usage since we last checked.
sleep 1

CPU=(`cat /proc/stat | grep '^cpu '`) # Get the total CPU statistics.
unset CPU[0]                          # Discard the "cpu" prefix.
IDLE=${CPU[4]}                        # Get the idle CPU time.
TOTAL=(`cat /proc/stat | grep '^cpu ' | awk '{ sum = $2 + $3 + $4 } END { print sum }'`)


let "DIFF_IDLE=$IDLE-$PREV_IDLE"
let "DIFF_TOTAL=$TOTAL-$PREV_TOTAL"
let "DIFF_USAGE=(1000*$DIFF_TOTAL/($DIFF_IDLE+$DIFF_TOTAL))/10"


echo -en "\rCPU:$DIFF_USAGE%\nTOTAL:$DIFF_TOTAL\nIDLE:$DIFF_IDLE                  "
# Remember the total and idle CPU times for the next check.
PREV_TOTAL="$TOTAL"
PREV_IDLE="$IDLE"

웹페이지 출력:

CPU:100%
TOTAL:101
IDLE:0     

관련 정보