Можно ли использовать внешний веб-ресурс?

1

Могу я tail -f выход из http://example.com?

Я хочу контролировать внешний файл JSON.

Szymon Toda
источник
1
Как вы получаете доступ к этому файлу JSON? Это на сетевом ресурсе? На ПК, к которому у вас есть доступ по SSH? На одной машине под другим аккаунтом? ...
MariusMatutiae

Ответы:

2

Нет. Из справочной страницы (1):

   With  --follow  (-f),  tail  defaults to following the file descriptor,
   which means that even if a tail’ed file is renamed, tail will  continue
   to  track  its  end.   This  default behavior is not desirable when you
   really want to track the actual name of the file, not the file descrip-
   tor (e.g., log rotation).  Use --follow=name in that case.  That causes
   tail to track the named file  in  a  way  that  accommodates  renaming,
   removal and creation.

Это означает, что команда tail должна следовать за файловым дескриптором, чего не происходит, когда вы отправляете http-запрос. Ваша файловая система не знает, что удаленный (в том смысле, на который вы ссылаетесь) файл изменился. Чтобы заставить что-то подобное работать, вам понадобится утилита / скрипт, который опрашивает сервер через определенный интервал или использует что-то вроде веб-сокетов (если сервер поддерживает это).

Samuel Lindblom
источник
0

Один из способов сделать это - запустить wget на целевой URL в цикле и хвосте, что:

$ while :; do 
   wget -qO - http://example.com >> /tmp/foo; sleep 1; 
  done

Затем из другого терминала запустить

$ tail -f /tmp/foo
terdon
источник
0

Использовать tail -f в интернет-файле этот файл должен быть доступен для чтения и опроса. Один из способов сделать это - HTTPFS Однако это не часто используемый или зрелый программный продукт.

Sparr
источник