Есть ли способ читать файлы из каталога virtual / proc с помощью smbclient?

Файлы можно помещать в свой /etc/cron.d в качестве root (или если у Вас есть sudo). Вы можете сделать что-то подобное ...

# cat > /etc/cron.d/mycronjob <<EOT
* * * * * /bin/logger "Hello from cron"
EOT

... тогда ты можешь наблюдать за тем, как твое задание cron пишет системный журнал так...

# tail -f /var/log/messages
1
28.05.2015, 04:11
1 ответ

Вы не можете скопировать файл, потому что smbclient / smbget не проверяет размер файла после его открытия. Это не имеет ничего общего с разрешениями.

Вы должны проверить, как это делается в dolphin (файловый менеджер kde), потому что он МОЖЕТ копировать удаленные файлы из proc, даже если они сообщают нулевой размер). Вы можете получить исходный код через git clone git: //anongit.kde.org/kde-baseapps, но я не уверен, включена ли там обработка smb.

Я не знаю, что вы хотите сделать, но, возможно, вы могли бы написать простой скрипт на сервере, который будет копировать содержимое / proc / cpuinfo в «обычный» файл и получать этот файл через smb.

Если вы просто хотите получить содержимое файла / proc на другом компьютере, и это может быть что-то еще (не самба), вы можете попробовать использовать, например, скрипты cgi.

Пример сценария, который я когда-то написал, который показывает текущее использование ЦП:

#!/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     
1
27.01.2020, 23:50

Теги

Похожие вопросы