创建crontab任务
利用 crontab -e 可以调用vi以交互的方式直接创建提交crontab任务,这里由于需求,主要记录一下使用脚本直接创建crontab任务的方法,参考了blog、输出重定向。
使用方式,主要是利用 crontab -l 的输出,并对输出做一些处理后作为 crontab 的输入,从而完成创建和删除crontab任务。
1 | TASK_NAME="myCrontabJob.py" |
主要分析一下:
1 | ( crontab -l 2>/dev/null | grep -v "${TASK_NAME}";echo "${CRONTAB_TASK}" ) | crontab - |
crontab -l 主要是输出当前用户的crontab任务
grep -v “${TASK_NAME}” 是如果输出中包括当前要创建的任务,则过滤,即删掉避免重复
echo “${TASK_NAME}” 则是输出要创建的任务,相当于追加到 crontab -l 的输出上
crontab - 将前面的输出结果作为未命名文件并作为输入,从而更新crontab任务表,从而实现任务添加
主要利用了多条命令的io重定向,上面国外论坛参考链接中有解释:
1 | ( command1 ; command2 ; command3 ) | cat |