通常我们会需要定时启动一些shell脚本,类似Windows中的Task Scheduler, 下面是在AWS EMR Cluster 主几点上配置的步骤:

1. 先创建一个shell脚本,将需要执行的任务写入脚本

  vi  testcron.sh

2. 修改该脚本的权限,添加执行权限:

  chmod a+x testcron.sh

3. 配置crontab, 创建执行任务的schedule:

  crontab -e

  * * * * * /tmp/testcron.sh         #每分钟执行一次testcron.sh

4. 列出当前用户的所有定时任务:

  crontab -l

5. 删除当前用户的所有定时任务:

  crontab -r

6. 也可以配置其他用户:

  crontab -u username -e

7. 看 /var/log/cron这个文件就可以,可以用tail -f /var/log/cron观察

8. 利用 linux flock 锁机制

  利用 flock(FreeBSD lockf,CentOS下为 flock),在脚本执行前先检测能否获取某个文件锁,以防止脚本运行冲突。

  格式:

  flock [-sxun][-w #] fd#
   flock [-sxon][-w #] file [-c] command

  选项:

  -s, --shared:    获得一个共享锁
   -x, --exclusive: 获得一个独占锁
   -u, --unlock:    移除一个锁,脚本执行完会自动丢弃锁
   -n, --nonblock:  如果没有立即获得锁,直接失败而不是等待
   -w, --timeout:   如果没有立即获得锁,等待指定时间
   -o, --close:     在运行命令前关闭文件的描述符号。用于如果命令产生子进程时会不受锁的管控
   -c, --command:   在shell中运行一个单独的命令
   -h, --help       显示帮助
   -V, --version:   显示版本

  锁类型:

    共享锁:多个进程可以使用同一把锁,常被用作读共享锁
    独占锁:同时只允许一个进程使用,又称排他锁,写锁。

  这里我们需要同时只允许一个进程使用,所以使用独占锁。

修改后的定时任务如下:

*/1 * * * *  flock -xn /tmp/test.lock -c /tmp/testcron.sh  >> /tmp/testcron_result.log

为了测试这个功能,我在testcron.sh脚本里,添加了sleep命令

sleep 10m      #等待10分钟

  sleep 1h        #等待1小时

  sleep 10        #等待10秒钟

Linux 定时任务的配置的更多相关文章

  1. (转载)Linux定时任务cron配置

    (转载)http://blog.csdn.net/jbgtwang/article/details/7995801 实现linux定时任务有:cron.anacron.at等,这里主要介绍cron服务 ...

  2. linux定时任务cron配置

    实现linux定时任务有:cron.anacron.at,使用最多的是cron任务 名词解释 cron--服务名:crond--linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与 ...

  3. linux定时任务cron配置[转]

    实现linux定时任务有:cron.anacron.at等,这里主要介绍cron服务. 名词解释: cron是服务名称,crond是后台进程,crontab则是定制好的计划任务表. 软件包安装: 要使 ...

  4. 工作中linux定时任务的设置及相关配置

    工作中会用到定时任务,来处理以前采集来的数据备份, 每周一凌晨4点执行一次    0 4 * * */1 find/data/templatecdr/oracle/dcndatabak/ -type ...

  5. linux定时任务crond export变量问题

    linux定时任务crond export变量问题 1)我写了一个重启resin的脚本,由于业务原因,需要定时在某一个时间重启下resin服务器,于是就在 crontab里配置了如下内容: 50 17 ...

  6. Linux 定时任务

    200 ? "200px" : this.width)!important;} --> 介绍 本篇主要介绍Linux定时任务命令crontab的用法,crontab是定时任务 ...

  7. Linux 定时任务 Crontab命令 详解

    前言 crontab是Unix和Linux用于设置周期性被执行的指令,是互联网很常用的技术,很多任务都会设置在crontab循环执行,如果不使用crontab,那么任务就是常驻程序,这对你的程序要求比 ...

  8. Linux实战教学笔记11:linux定时任务

    第十一节 linux定时任务 标签(空格分隔): Linux实战教学笔记 ---更多资料点我查看 1.1 定时任务Crond介绍 Crond是linux系统中用来定期执行命令/脚本或指定程序任务的一种 ...

  9. 【转帖】Linux定时任务Crontab命令详解

    Linux定时任务Crontab命令详解 https://www.cnblogs.com/intval/p/5763929.html 知道有crontab 以及 at 命令 改天仔细学习一下 讲sys ...

随机推荐

  1. CQOI2018异或序列 [莫队]

    莫队板子 用于复习 #include <cstdio> #include <cstdlib> #include <algorithm> #include <c ...

  2. 【BZOJ5503】[GXOI/GZOI2019]宝牌一大堆(动态规划)

    [BZOJ5503][GXOI/GZOI2019]宝牌一大堆(动态规划) 题面 BZOJ 洛谷 题解 首先特殊牌型直接特判. 然后剩下的部分可以直接\(dp\),直接把所有可以存的全部带进去大力\(d ...

  3. mysql 设置允许重试,批量更新

    jdbc:mysql://ip:port/base?allowMultiQueries=true&autoReconnect=true 在mybatis中批量更新 需要在mysql的url上设 ...

  4. JS兼容问题

    //1.滚动条到顶端的距离 var scrollTop = document.documentElement.scrollTop || document.body.scrollTop; //2.滚动条 ...

  5. IIS虚拟目录内的视频文件访问出错:HTTP 错误 404.3 - Not Found 由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射。

    MIME类型就是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开.多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式. 我是 ...

  6. 源码来袭:call、apply手写实现与应用

    关于this指向可以了解我的另一篇博客:JavaScript中的this指向规则. 一.call与apply的使用 回顾call与apply的this指向: var value = "win ...

  7. 利用git提交代码

    一.首先需要下载git 查看电脑是否安装git,打开终端,输入git,回车如果输出如下,则代表已安装了git 如果未安装,则会输出: 按照提示输入:sudo apt-get install git即可 ...

  8. RT-SA-2019-003 Cisco RV320 Unauthenticated Configuration Export

    Advisory: Cisco RV320 Unauthenticated Configuration Export RedTeam Pentesting discovered that the co ...

  9. Vue-cli 模拟数据库

    vue-cli2.x 版本开发: 新版在build目录下的webpack.dev.conf.js配置本地数据访问: 1,在const portfinder = require(‘portfinder’ ...

  10. VJTools

    https://mp.weixin.qq.com/s/cwU2rLOuwock048rKBz3ew