/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ファイルの内容をインポートしたい場合(Sambaではなく)、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"
Webページ出力:
CPU:100%
TOTAL:101
IDLE:0