Unix配置定时执行任务

Unix系的操作系统比如MacOS或者Linux的系统可以使用crontab命令进行定时任务的配置。本文将以MacOS为例,介绍如何使用crontab命令设置定时任务。

假定现在有一个需求是:每一分钟产生一个字符串插入一个文件!

  • 检查是否存在crontab文件;
    ls -al /etc/crontab
  • 如果不存在,则需要先进行创建;
    sudo touch /etc/crontab
  • 执行以下命令,在其中加入要执行的任务;
    crontab -e
  • 比如本需求需要写入以下命令,每分钟执行一次;
    */1 * * * * echo "hello world" > ok.txt

格式如下:

*  *  *  *  *  command
分  时  日  月  周   命令

crontab的具体定时配置可见参考

注意

为了保证crontab命令能正常执行,需要特别注意以下几点:

  1. 执行命令的权限问题;如果需要sudo权限执行的命令,加到crontab任务中时也需要sudo,即sudo crontab -e
  2. 命令中最好使用绝对路径,无论该命令是否已经保存到环境变量.bash_profile
  3. 写在crontab中的shell命令最好只包含.sh文件,不要有其他的shell命令比如date等。比如如下命令写在crontab中是不会被执行的。此时可以将以下命令再封装在另一个.sh文件中,然后在crontab中执行该.sh文件。
0 1 * * * /MYPATH/exe.sh >> /LOGPATH/`date +'%Y_%m_%d'`.log
posted @ 2020-12-23 18:31  小王点点  阅读(458)  评论(0编辑  收藏  举报