crontab是Linux下执行定时任务的工具,之前偶尔需要用到时都是通过执行crontab -e命令或者通过root身份直接编辑/etc/cron.*/下的文件来添加定时任务。这段时间遇到了需要通过shell来自动添加或删除crontab的需求。在shell中无法通过crontab -e来与crontab编辑器交互,同时执行命令的人不一定有root身份,也无法直接编辑/etc/cron.*/下的文件。

经过一番实践,通过crontab -l配合sed命令来完成了这个自动添加及删除crontab的操作,在此记录下。

crontab的语法

一张很明晰的crontab语法图,附在这以备用

shell控制脚本

#!/usr/bin/env bashCUR_PATH=$(cd "$(dirname "$0")"; pwd)# 要定时执行的任务
TASK_COMMAND="echo 'aaa' >> /var/cron_test"
# 要添加的crontab任务
CRONTAB_TASK="*/30 * * * * ${TASK_COMMAND}"
# 备份原始crontab记录文件
CRONTAB_BAK_FILE="${CUR_PATH}/crontab_bak"# 创建crontab任务函数
function create_crontab()
{echo 'Create crontab task...'crontab -l > ${CRONTAB_BAK_FILE} 2>/dev/nullsed -i "/.*${TASK_COMMAND}/d" ${CRONTAB_BAK_FILE}  # 已存在任务时会被sed删除,防止重复添加echo "${CRONTAB_TASK}" >> ${CRONTAB_BAK_FILE}crontab ${CRONTAB_BAK_FILE}echo 'Complete'
}# 清除crontab任务函数
function clear_crontab(){echo 'Delete crontab task...'crontab -l > ${CRONTAB_BAK_FILE} 2>/dev/nullsed -i "/.*${SCRIPT_NAME}/d" ${CRONTAB_BAK_FILE}crontab ${CRONTAB_BAK_FILE}echo 'Complete'
}if [ $# -lt 1 ]; thenecho "Usage: $0 [start | stop]"exit 1
ficase $1 in'start' )create_crontab;;'stop' )clear_crontab;;
esac

转载于:https://www.cnblogs.com/haoxi/p/8138801.html

shell编辑crontab任务相关推荐

  1. linux shell crond crontab 定时器 计划任务 定时任务

    一.crontab是什么? 1.定时任务软件种类 at 适合仅执行一次就结束的调度命令,需要启动一个后端的atd服务.  crontab 需要启动一个服务crond才行,crond服务通过cronta ...

  2. linux shell 之 crontab(定时任务)详解

    1.定义: crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令.该命令从标准输入设备读取指令,并将其存放于"crontab"文件中,以供之后读取 ...

  3. linux shell 编辑文件内容,Shell编辑与文本处理(Bash sed文本编辑)

    释放双眼,带上耳机,听听看~! 1 sed 命令格式 sed 的全称是 stream editor,也就是流编辑器.其作用便是将文本文件或来自于管道符传入的输入流做文本的处理,如替换.增加内容.删除内 ...

  4. linux定时任务crontab 时间,shell后台定时任务时crontab的用法

    语法:crontab[-u username]|-l|-r|-e|-v -u:指定crontab job的用户 -l:列出当前crontab的job -e:使用$EDITOR编辑crontab job ...

  5. 每天学一点儿shell:Linux中crontab的用法

    文章目录 1.crontab命令说明 2.crontab命令 3.crontab注意事项 4.crontab使用实例 5.crontab其他案例 1.每天 02:00 执行任务 2.每天 5:00和1 ...

  6. shell后台执行命令-crontab

    名词解释: cron 系统调度进程,可通过它按照一定的时间间隔或固定的时间点运行作业 &   使用它在后台运行一个占用时间不长的进程 注: cron是系统的调度进程,可在无人干预的情况下运行作 ...

  7. Ubuntu利用crontab+shell脚本实现Scrapy每日定时爬取网站

    Ubuntu利用crontab+shell脚本实现Scrapy每日定时爬取网站 原创文章.码字不易,转载请注明出处和链接,谢谢! 1.环境保障 自己利用scrapy编写的智联招聘网站"大数据 ...

  8. Linux命令每五分钟执行一次,Linux crontab 每5秒钟执行一次 shell 脚本 的方法

    Linux crontab 每5秒钟执行一次 shell 脚本 的方法 由于 Linux 的 crontab 的定时命令格式如下: minute hour day-of-month month-of- ...

  9. sftp shell 批量上传文件_Shell自动上传下载文件到SFTP服务器

    1.说明 本文提供一个Shell脚本, 可以自动连接到SFTP服务器, 然后上传或者下载指定的文件, 进而可以使用Linux的corntab命令, 定时执行脚本上传下载文件, 实现文件的同步或者备份功 ...

最新文章

  1. 记一次被js中的this坑的事情
  2. visual stadio 添加 Extjs 智能提示!
  3. 闲话 - 火车硬座座位分布图
  4. 明令禁止工作“996”,是对“生而为人”的基本尊重
  5. ofbiz mysql_ofbiz+mysql安装求教
  6. 从科大讯飞跳槽到腾讯被判赔 1200 万;华为多款机型将取消充电器;苹果春季发布会定档4月21日|极客头条...
  7. 使用Python批量替换指定目录所有文件中的指定文本
  8. ITAA学员的经典对白
  9. 数据库服务器操作系统升级方案,PostgreSQL 数据库跨版本升级常用方案解析
  10. 笔记本 续航测试软件,续航能力测试
  11. win11右键新建没有txt文本文档记事本怎么办
  12. 容器:forward_list用法及示例
  13. 社群运营怎么做,有哪些互动玩法?
  14. WiFi-ESP8266入门http(3-4)网页一键配网(1若为普通wifi直连 2若为西电网页认证自动网页post请求连接)+网页按钮灯控+MQTT通信...
  15. 制品仓库 Nexus 安装、配置、备份、使用
  16. 华晨宏盛分享2021年个人所得税起征点是个人所得税税率一览表
  17. 解决word 2016中不能加载EndNote x7
  18. 直击物联网安全痛点,青莲云亮相2017中国(上海)国际物联网大会
  19. 【机器人识别抓取】基于视觉的机器人抓取——从物体定位、物体姿态估计到平行抓取器抓取估计
  20. java跳骚市场的代码,Java常用API包及骚操作

热门文章

  1. lintcode:递归打印数字
  2. ### C++总结-[类成员函数]
  3. access2003的使用
  4. 一个简单的HelloWorld程序
  5. mybits注解详解
  6. Java核心技术及面试指南 异常部分的面试题归纳以及答案
  7. 将自己写的windows服务加入到windows集群中
  8. 《几何与代数导引》例2.7.3
  9. C#:RichTextBox 追加其它颜色的行列
  10. Pytorch基础(四)—— 卷积层