我写了一个crontab任务,每10分钟由cURL发出3个POST请求,这里是伪的:
#!/bin/sh
echo `date` >>/tmp/log
curl $a >>/tmp/log
curl $b >>/tmp/log
curl $c >>/tmp/log
这就是所有代码,但是在第一次回显到我的/ tmp / log后,其他输出被保存在随机文件名中,如“A6E0U9~D”,它不会一直发生,我没有线索为什么:(
PS。我不使用“$ a”,我使用从CHROME Dev Tool复制的原始字符串,其中一个在下面添加。并且每一行的输出都很好,唯一的问题是一些输出被重定向到随机名称文件。
删除cURL链接,因为它包含我的登录cookie
答案 0 :(得分:1)
不是真正的解决方案,但您可以一次重定向所有内容的输出,而不是重复附加到同一个文件。
#!/bin/sh
{
date
curl ...
curl ...
curl ...
} > /tmp/log
这里的好处是所有输出都将出现在同一个文件中,无论该文件是/ tmp / log还是奇怪命名的文件。如果仍然以/ tmp / log之外的其他文件结束,那么您知道其中一个curl
来电一定存在问题。
(请注意,捕获并重新打印date
的输出是多余的。)
为了并行运行每个curl
,您需要保存每个#!/bin/sh
{
date
tmp1=$(mktemp) && curl ... > "$tmp1" &
tmp2=$(mktemp) && curl ... > "$tmp2" &
tmp3=$(mktemp) && curl ... > "$tmp3" &
wait
cat "$tmp1" "$tmp2" "$tmp3"
} > /tmp/log
rm "$tmp1" "$tmp2" "$tmp3"
的输出,并在完成后连接它们。
<span>