0

我正在尝试创建一个简单的 crontab,它通过使用简单命令的输出填充它每分钟创建一个名为 log.txt 的文件。现在这是我放入我的 crontab 的内容:

* * * * * (/usr/bin/ls <pathToRandomDirectory) > log.txt

据我了解,5 个星号对应于“每分钟”。但是当我运行这个时,log.txt 文件没有被创建。我在这里缺少什么吗?

另外,如果我不想在创建工作时向我发送电子邮件,我发现我需要输入以下内容:

>/dev/null 2>&1

在我的 crontab 文件中的某处。这具体去哪儿了?在命令的末尾还是在单独的行上?

4

2 回答 2

2

您必须为 log.txt 放置一个绝对路径。否则,它将在 / 中创建。

此外,>/dev/null 2>&1必须在句末。如果您希望消除 2(表示错误),只需编写2>/dev/null.

然后,您的最终 cronjob 将是这样的:

* * * * * /usr/bin/ls pathToRandomDirectory > /pathToRandomDirectory/log.txt 2>/dev/null
于 2013-02-11T11:57:04.327 回答
1

该文件中究竟应该包含什么?这会每分钟创建一个新文件,其中包含文本“某物”:

* * * * * echo "something" > /path/to/your/file.txt

我在使用 crontab 时遇到了一些问题,尤其是当我创建新的 crontab 配置时——我的问题是我必须在 crontab 的末尾插入一个空行——某些系统需要它才能正常工作。所以如果你这样做

$ crontab -l

输出应该是每行上的 cron 作业列表,最后是空行。

如果它适合你,试试吧。抱歉,但我不确定电子邮件,但我认为您不需要将这样的行放到 crontab 中,玩弄配置 - 默认情况下它不应该向您发送任何电子邮件。

于 2013-02-11T09:16:13.373 回答