Я следую за разработчиком Twitter и хочу сделать очень простой вызов против их API в реальном времени. Ниже приведен код ниже:
curl -s -u twitterusername:twitterpassword https://stream.twitter.com/1/statuses/sample.json -o "somefile.txt"
Моя надежда динамически называет файл таким образом, что фиксируются почасовые журналы данных.
РЕДАКТИРОВАТЬ: ничего не стоит, что я я надеюсь, что эта команда остается открытой и что данные, которые я получаю, являются непрерывными. Я хочу перенаправить вывод каждый час в разные файлы.
Я совершенно не знаком с командной строкой и ubuntu, поэтому я даже не знаю, с чего начать. Любая помощь будет высоко оценена.
curl -s -u twitterusername:twitterpassword https://stream.twitter.com/1/statuses/sample.json -o "somefile $(date + format).txt"
Где format может быть любым из следующих:
%a : Abbreviated weekday name (Sun..Sat)
%b : Abbreviated month name (Jan..Dec)
%B : Full month name, variable length (January..December)
%d : Day of month (01..31)
%e : Day of month, blank padded ( 1..31)
%m : Month (01..12)
%Y : Year
%d : Day of month (e.g, 01)
%H : 24 hour format (00..23)
%I : 12 hour format (01..12)
%M : Minutes of the current time (00...59)
%j : day of year (001..366)
%D : date; same as %m/%d/%y
%F : full date; same as %Y-%m-%d
Итак, для вас это сохранит файл и динамически добавит час (% H) и минуты (% M) текущего времени
curl -s -u twitterusername:twitterpassword https://stream.twitter.com/1/statuses/sample.json -o "somefile $(date +\"%H:%M\").txt"
Поскольку вы хотите, чтобы curl получал данные в течение 1 часа и сохранял эти данные в файле, снова возобновляя операции, вам нужно хотя бы использовать небольшой скрипт, это выполнит задание:
#! /bin/bash
while true; do
curl -s -m 3600 -u twitterusername:twitterpassword https://stream.twitter.com/1/statuses/sample.json -o "somefile $(date +%H:%M).txt"
done
. Когда вы оставите скрипт запущенным, выполните команду, каждый 3600 секунд (1 час, параметр -m 3600) закроется, и команда будет
Обратите внимание, что это не будет просто разрезать поток, он фактически закроет завиток и снова откроет его, не думайте, что он может разрезать поток во время работы завитка.
Для этого вам нужен тот же скрипт, то есть ~/curl_script.sh и сделать его исполняемым с chmod 755 ~/curl_script.sh, прежде чем использовать его на терминале, чтобы использовать его, перемещая папку, в которой был сохранен скрипт, и просто введите ./curl_script.sh.
Чтобы прервать скрипт, нажмите Ctrl + c.
Если вы прерываете сценарий и возобновляете i t в ту же минуту он по умолчанию перезапишет предыдущие собранные данные, поэтому будьте осторожны.
Сообщите мне, хотите ли вы внести некоторые другие изменения в скрипт. Для дальнейших параметров завихрения я рекомендую прочитать страницу curl man (man curl на терминале).
Удачи.