如何实现非交互追加定时任务crontab,且保证原定时任务不被覆盖?

一. 非交互追加定时任务一

# 追加定时任务一,使用\转义双引号     
echo "*/10 * * * * echo \"test_crontab_1\" >> /var/log/test_crontab.log" | crontab -
# 查看定时任务     
crontab -l     

效果图:
非交互追加定时任务一

二. 非交互追加定时任务二

1. 法一,使用() 创建子Shell

使用圆括号 () 创建了一个子shell。子shell 的作用是在一个独立的环境中执行一系列命令,并将其输出作为整体传递给后续的命令

# 追加定时任务二
(crontab -l ; echo "*/10 * * * * echo \"test_crontab_2\" >> /var/log/test_crontab.log") | crontab -

2. 法二,使用重定向

如果定时任务数量较多也可以先将之前的定时任务输出重定向到crontab_backup文件 ,再将新的定时任务追加至文件,最后使用crontab 导入

crontab -l > /opt/crontab_backup 
echo "*/10 * * * * echo \"test_crontab_2\" >> /var/log/test_crontab.log"  >> /opt/crontab_backup

crontab /opt/crontab_backup 

三.验证定时任务一是否被覆盖

1. 验证法一

crontab -l
# 非交互式清空全部定时任务
echo "" | crontab -

发现之前的定时任务没有被覆盖
验证法一

2. 验证法二

crontab -l
# 非交互式清空全部定时任务
echo "" | crontab -

发现之前的定时任务没有被覆盖
验证法二

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐