0

当我们添加 * * * * * myTask.sh 2>&1 >> /var/log/myTask.log到 crontab 时,所有日志都输入到myTask.log但是,我想知道是否有任何方法可以提供备用位置(即使它是/dev/null),以便如果由于某种原因无法访问该位置(由于删除或权限)作业不应受到影响。

请让我知道我们是否可以做到这一点。

4

1 回答 1

0

一个想法是spongemoreutils包中使用。也就是说,sudo apt-get install moreutils,那么:

* * * * * myTask.sh 2>&1 | sponge /var/log/myTask.log

程序海绵吸收它的所有输入,然后只在最后写入。这意味着在您的程序完成之前不会检查文件的权限或其他任何内容。不利的一面是,海绵将消耗尽可能多的内存来缓冲其输入,因此如果您的程序打印很多,这可能是不可取的。

于 2013-06-24T12:07:51.430 回答