Я записал сценарий Perl, который работает как ежедневная газета crontab задание, которое загружает файлы на Amazon S3 через ЗАВИХРЕНИЕ. Я хочу вывод задания крона, посланного по электронной почте мне, который хорошо работает, но я не хочу, чтобы та электронная почта включала сообщения, связанные с ВИХРЕВОЙ загрузкой (только они обмениваются сообщениями, мой сценарий производит). Вот ВИХРЕВЫЕ похожие сообщения, которые я вижу в ежедневном электронном письме прямо сейчас:
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 230M 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
0 230M 0 0 0 544k 0 1519k 0:02:35 --:--:-- 0:02:35 1807k
0 230M 0 0 0 1744k 0 1286k 0:03:03 0:00:01 0:03:02 1342k
1 230M 0 0 1 2880k 0 1219k 0:03:13 0:00:02 0:03:11 1250k
1 230M 0 0 1 4016k 0 1198k 0:03:17 0:00:03 0:03:14 1218k
2 230M 0 0 2 5168k 0 1186k 0:03:19 0:00:04 0:03:15 1202k
2 230M 0 0 2 6336k 0 1181k 0:03:19 0:00:05 0:03:14 1157k
3 230M 0 0 3 7488k 0 1177k 0:03:20 0:00:06 0:03:14 1147k
3 230M 0 0 3 8592k 0 1167k 0:03:22 0:00:07 0:03:15 1142k
4 230M 0 0 4 9744k 0 1166k 0:03:22 0:00:08 0:03:14 1145k
4 230M 0 0 4 10.6M 0 1163k 0:03:23 0:00:09 0:03:14 1142k
5 230M 0 0 5 11.7M 0 1161k 0:03:23 0:00:10 0:03:13 1140k
5 230M 0 0 5 12.8M 0 1158k 0:03:23 0:00:11 0:03:12 1133k
6 230M 0 0 6 13.9M 0 1155k 0:03:24 0:00:12 0:03:12 1138k
6 230M 0 0 6 15.0M 0 1155k 0:03:24 0:00:13 0:03:11 1138k
7 230M 0 0 7 16.1M 0 1152k 0:03:25 0:00:14 0:03:11 1131k
7 230M 0 0 7 17.2M 0 1152k 0:03:25 0:00:15 0:03:10 1132k
7 230M 0 0 7 18.4M 0 1152k 0:03:24 0:00:16 0:03:08 1140k
Я использую простой Perl system()
звоните для вызова CURL. Кто-либо знает, какой параметр командной строки я могу предоставить ЗАВИХРЕНИЕ для выключения создания отчетов прогресса загрузки?
По какой-то причине моя версия CURL не распознавала -s или -silent, что, как я знаю, не имеет смысла. Как предложил @Friedo, я попытался использовать обратные кавычки или оператор qx, который также не избавлялся от нежелательных отчетов о ходе загрузки. В конечном итоге я пошел очень нелегким путем, добавив > / dev / null 2> & 1
в конец системного вызова, который решил проблему.
Здесь есть несколько вариантов.
Вы можете использовать флаг -s
или - silent
, чтобы отключить весь вывод. Из справочной страницы curl
:
-s / - silent Тихий или тихий режим. Не показывать счетчик прогресса или сообщения об ошибках - мудрецов. Делает Curl беззвучным.
Или вместо использования чего-то вроде system
в вашем Perl-скрипте для запуска curl
вы можете использовать обратные кавычки или qx
оператор для захвата вывода в переменную.
Или вы можете открыть свой процесс curl
с конвейером , чтобы захватить его STDOUT и просмотреть его позже.
Наконец, вы можете изучить возможность замены системных вызовов curl
собственной библиотекой Perl, например LWP :: UserAgent или Mechanize .