我编写了一个Perl脚本,它作为每日crontab作业运行,通过CURL将文件上传到Amazon S3.我希望通过电子邮件发送给我的cron作业的输出工作正常,但我不希望该电子邮件包含与CURL上载相关的消息(只有我的脚本输出的那些消息).以下是我现在在每日电子邮件中看到的与CURL相关的消息:
% 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
Run Code Online (Sandbox Code Playgroud)
我正在使用一个简单的Perl system()调用来调用CURL.有谁知道我可以提供什么命令行参数CURL来关闭上传进度的报告?
fri*_*edo 10
这里有一些选择.
您可以使用-s或--silent标记来静音所有输出.从curl联机帮助页:
Run Code Online (Sandbox Code Playgroud)-s/--silent Silent or quiet mode. Don’t show progress meter or error mes- sages. Makes Curl mute.
或者,您可以使用反引号或运算符将输出捕获到变量,而不是使用systemPerl脚本中的某些内容来运行.curlqx
或者,您可以curl使用管道打开您的进程以捕获其STDOUT并稍后查看.
最后,您可能希望探索将系统调用替换curl为本机Perl库,如LWP :: UserAgent或Mechanize.
由于某种原因,我的 CURL 版本无法识别 -s 或 --silent,我知道这没有意义。正如@Friedo 建议的那样,我尝试使用反引号或 qx 运算符,它们也没有摆脱不需要的上传进度报告。最终我采用了非常不优雅的方式添加>/dev/null 2>&1到系统调用的末尾,从而解决了问题。
| 归档时间: |
|
| 查看次数: |
3513 次 |
| 最近记录: |