Возникла необходимость читать счётчики с сетевых интерфейсов. Метрика
доступна в файле /sys/class/net/eth0/statistics/rx_bytes 
NJS возвращает текущее значение и вдобавок к метрике мусор. Похоже весь файл
читается блоком в 4K. Если тот-же код выполнить в ноде - результат
корректен.  Правильное ли это поведение njs?

Пример кода -  test.js

var fs = require('fs')
var file = fs.readFileSync('/sys/class/net/eth0/statistics/rx_bytes')
var file = fs.writeFileSync('filecopy.txt', file)

Проверка:

stat /sys/class/net/wlp61s0/statistics/rx_bytes

File: /sys/class/net/wlp61s0/statistics/rx_bytes
Size: 4096            Blocks: 0          IO Block: 4096   regular file

njs  test.js
stat filecopy.txt 

File: filecopy.txt
Size: 4096            Blocks: 8          IO Block: 4096   regular file

node test.js
stat filecopy.txt 

File: filecopy.txt
Size: 10              Blocks: 8          IO Block: 4096   regular file

Версии:
njs -v
0.3.9

node -v
v8.10.0

Проверял на Ubuntu 18.04.4 LTS и так же в Docker nginx:latest

Posted at Nginx Forum: 
https://forum.nginx.org/read.php?21,287667,287667#msg-287667

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Ответить