我正在尝试学习如何使用 crontab 定期执行 bash 命令。我想我应该先尝试一些简单的事情,比如让 crontab 每分钟将日期和时间读取到标准输出。但当我尝试这样做时,会发生以下情况:
Nicholass-MacBook-Air-2:cron_test nick$ crontab 1 * * * * date
crontab: 1: No such file or directory
我该如何让它发挥作用?
谢谢,
缺口
答案1
在终端中输入以下行
crontab -e
输入以下行并保存文件。
1 * * * * date >> /tmp/output.txt
一分钟后,查看输出文件
cat /tmp/output.txt
答案2
该crontab
命令不会在命令行上获取 cron 作业条目。要添加 cron 作业条目,请运行crontab -e
以打开编辑器。
在 macOS 上,这不起作用,因此您应该准备一个包含 cron 条目的文本文件并提供那进入crontab
:
$ vi crontab.txt # use whatever editor you want
在其中添加条目:
* * * * * date >>/tmp/date.out
此条目将安排date
命令每分钟运行一次,永远运行(或直到 cron 作业被删除),并且它将其输出写入/tmp/date.out
,每次运行时添加新的输出行。
保存文件并退出编辑器。
然后,实际加载 cron 条目:
$ crontab crontab.txt
但请注意,这替换当前用户的所有现有 crontab 条目,如果有的话。
到添加macOS 上的条目,同时保留任何已存在的条目,首先crontab.txt
使用现有的 crontab 条目创建并编辑该文件并将其加载回:
$ crontab -l >crontab.txt
$ vi crontab.txt
$ crontab crontab.txt
去除全部条目,使用crontab -r
.
macOS 上的 Cron 还可以理解特定调度时间的@reboot
、@hourly
、@daily
等短名称。@weekly
看手册crontab(5)
在您的系统上了解更多信息 ( man 5 crontab
)。