Сохранить почасовой файл из ответа cURL

Я слежу за разработчиком в Твиттере и хочу сделать очень простой вызов их API в режиме реального времени. Код ниже почти привел меня туда:

curl -s -u twitterusername:twitterpassword https://stream.twitter.com/1/statuses/sample.json -o "somefile.txt"

Я надеюсь, что динамически назовите файл так, чтобы почасовые журналы данных захватывались.

РЕДАКТИРОВАТЬ: Я ничего не стою, что я надеюсь, что эта команда остается открытой, и что данные, которые я получаю, являются непрерывными. Я рассчитываю перенаправлять вывод каждый час в разные файлы.

Я совершенно новичок в командной строке и Ubuntu, поэтому я даже не знаю, с чего начать. Любая помощь будет высоко ценится.

3
задан 14 January 2012 в 05:06

1 ответ

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.

Если Вы прервете сценарий и возобновите его на той же минуте, то это будет значением по умолчанию перезаписывать предыдущие собранные данные, поэтому остерегайтесь.

Сообщите мне, хотите ли Вы сделать некоторые другие модификации к сценарию. Для дальнейших вихревых параметров я рекомендую чтение вихревой страницы справочника (man curl на терминале).

Весело провести время.

5
ответ дан 14 January 2012 в 05:06

Другие вопросы по тегам:

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