每5秒运行一次cURL命令。

56

这是我想要运行的命令 -

curl --request POST --data-binary @payload.txt --header "carriots.apiKey:XXXXXXXXXXXXXXXXXXXX" --verbose http://api.carriots.com/streams

这基本上是将数据流发送到服务器。

我想每5秒运行一次此命令。我该如何实现?

2个回答

105

你可以在while循环中运行。

while sleep 5; do cmd; done

编辑:

如果您不想使用while..loop,您可以使用watch命令。

watch -n 5 cmd

1
我听说使用循环并不是实现这个目标的一种非常高效的方式。对不起,我对Linux完全是新手。 - Archit Arora
1
@ArchitArora 你听说过循环不高效吗?每个东西都有用处,但取决于情况和时间。无论如何,请查看我的更新答案。 - Jayesh Bhoi
5
如果同时使用 --raw 查看响应结果,还应该使用 -s 标志来抑制冗长的输出。可以通过以下命令实现:watch -n 5 "curl --raw some.url -s" - boldnik
如果回复太长,它将被截断,因为watch具有最大数量的字符输出,所以无法与curl一起使用。 - wanted

12

另一种实现相同任务的简单方法是:

watch -n {{seconds}} {{your-command}}

例如,每900毫秒(请注意在“your-command”周围加上双引号):

watch -n 0.9 "curl 'https://public-cloud.abstratium.dev/user/site'"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接