crontab定期执行shell脚本

【场景】:

需要定期运行Hadoop的MapReduce

【解决办法】:

编写一个运行MapReduce的Shell脚本。然后使用crontab配置定时任务。

【Shell脚本】

#!/usr/bin/env bash
source /etc/profile
echo "TimeLimitDrawn Start"
hadoop jar $HADOOP_HOME/package/mr_post-1.0-SNAPSHOT-jar-with-dependencies.jar com.hdyh.mapreduce.TimeLimitDrawn >> /home/hadmin/hadoop/shell/mr.log
echo "TimeLimitDrawn End"

【定时任务】

*  *  */1  *  *  sh /home/hadmin/hadoop/package/TimeLimitDraw.sh

【crontab使用说明】

crontab –u    //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数
crontab –l     //列出某个用户cron服务的详细内容
crontab –r    //删除某个用户的cron服务
crontab –e    //编辑某个用户的cron服务

crontab 文件中的行由6个字段组成,不同字段间用空格或tab键分隔。前5个字段指定命令要运行的时间
①分钟(0-59)
②小时(0-23)
③日期(1-31)
④月份(1-12)
⑤星期几(0-6,其中0代表星期日,好像7也代表星期日)
⑥一个要在适当时间执行的字符串。

例子:
#MIN      HOUR     DAY       MONTH  DAYOFWEEK       COMMAND
#每天早上6点10分
10    6     *     *     *     date

#每两个小时
0     */2   *     *     *     date

#晚上11点到早上8点之间每两个小时,早上8点
0     23-7/2,8      *     *     *     date

#每个月的4号和每个礼拜一到礼拜三的早上11点
0     11    4     *     1-3  date

#1月1日早上4点
0     4     1     1       *  date

让配置文件生效:如果让配置文件生效,还得重新启动cron,切记,既然每个用户下的cron配置文件修改后,也要重新启动cron服务器。

注意:如果要定期执行某个Shell命令的时候,一定要注意以下两点:

①、shell脚本要有-x(可执行)的权限

②、shell脚本可以被正确执行,但是hadoop命令无法运行时,多数情况都是因为环境变量的原因,可以在Shell脚本中使用source /etc/profile来使环境变量生效。

③、如果设置的是整点运行,按照下面错误的写法,会在7点开始执行很多次命令。

错误的写法:*  7  *  *  *  sh /home/hadmin/hadoop/package/TimeLimitDraw.sh

正确的写法:0  7  *  *  *  sh /home/hadmin/hadoop/package/TimeLimitDraw.sh

④、有时因为找不到文件或者权限问题无法正确执行时,系统会生成一个文件【/var/spool/mail/[用户名]】、 如:/var/spool/mail/root

在这个文件中有时可以找到一些有用的线索。

linux基础(四)——任务调度cron和anacron相关推荐

  1. linux基础命令介绍十四:定时任务

    在计算机的使用过程中,经常会有一些计划中的任务需要在将来的某个时间执行,linux中提供了一些方法来设定定时任务. 1.at 命令at从文件或标准输入中读取命令并在将来的一个时间执行,只执行一次.at ...

  2. linux cron crontab anacron 计划任务 定时任务

    在linux下,如果想要在未来的某个时刻执行某个任务,并且在未来的每一个这样的时刻里都要执行这个任务.举个简单的例子,比如说想要在将来,每天的十二点都重启路由器,大多数发行版都自带一个守护进程(dae ...

  3. Linux基础优化方法(四)———远程连接缓慢优化

    Linux基础优化方法(四)---远程连接缓慢优化 一.优化原因 二.优化方法 第一步:修改SSH服务配置文件 /etc/ssh/sshd_config 第二步:修改/etc/hosts配置文件 第三 ...

  4. Linux基础知识题解答(四)

    题目来自老男孩BLOG:http://oldboy.blog.51cto.com/2561410/1709569,比较适合新手,空余的时候做一下,可以巩固Linux基础知识,有不对的地方欢迎指正. 1 ...

  5. linux账户密码 群组放在,linux基础命令学习(四)用户与群组

    一.linux用户账号的管理 linux用户账号的管理主要包括用户添加.用户删除.用户修改. 添加用户账号就是在系统创建一个新账号,然后为新账号分为用户号.用户组.主目录和登录Shell等资源. 刚添 ...

  6. Linux 基础命令(四)—— 文件的权限和访问控制列表(ACL)

    Linux 基础命令(四)-- 文件的权限和访问控制列表(ACL)  Published On July 24, 2017 前言 查看全文 http://www.taodudu.cc/news/sho ...

  7. Linux基础命令(3)

    十二 lsof命令简介 lsof(list open files) 是一个列出当前系统打开文件的工具.在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接 ...

  8. Linux基础知识梳理

    Linux基础知识梳理 Linux系统的学习的方法: 1. 做一个属于自己的笔记. 2. 学习方法:实验多敲几遍, 服务器硬件 一般的服务器 刀片服务器 Linux操作系统最初是在1991年10月份由 ...

  9. 一、Linux基础入门和架构了解

    第一章入门 一.虚拟机准备工作 1.仅主机模式: 保证guest可以和host(宿主机)通讯的.保证ip地址在一个网段里.宿主机安装完毕后(vmware),会自动生成两块网卡,vmnet1和vmnet ...

  10. day55 linux 基础以及系统优化

    Linux系统基础优化及常用命令   Linux基础系统优化 引言没有,只有一张图. Linux的网络功能相当强悍,一时之间我们无法了解所有的网络命令,在配置服务器基础环境时,先了解下网络参数设定命令 ...

最新文章

  1. iOS 多线程 自动释放池常见面试题代码
  2. 13 款惊艳的 Node.js 框架——第1部分
  3. oracle recyclebin详解,oracle recyclebin详解
  4. SharpWebMail介绍和安装(转)
  5. sql语句遇到错误: The used SELECT statements have a different number of columns :
  6. pm2-zabbix 安装与配置
  7. 2025年全球结构化布线市场预计将达到165亿美元
  8. 微信小程序支付java视频_【原创】微信小程序支付(普通模式,公众号支付同适用)java后台案例...
  9. macOS下搭建Nexus 3.x服务器作为Maven的资源仓库服务器
  10. 【批处理】用netsh管理防火墙示例
  11. GNU C getopt()、getopt_long() 与 getopt_long_only() 获取命令行参数
  12. 体验式培训之“盲人与哑巴”
  13. 一起话单业务量下降问题的排查过程
  14. 少年,我看你骨骼精奇,见与你有缘,这套算法赠你
  15. 药品计算机系统操作知识培训,新版GSP:计算机系统专业知识培训测试题(6)
  16. 又要数数小绵羊(C++) kkmd66
  17. 彻底删除的文件如何恢复?一个方案,解决烦恼
  18. java怎么画八卦图_自己画八卦图怎么画?电脑绘制八卦图|八卦图的简单画法
  19. 红楼梦人物出场顺序统计
  20. snippets vscode 配置_创建自己的Code Snippets在VSCode中

热门文章

  1. 用Redis实现分布式锁 与 实现任务队列【转载】
  2. Excel单元格格式选择货币格式US$时变成US$¥
  3. 如何应对企业的数字灾难
  4. VC6下OpenGL 开发环境的构建外加一个简单的二维网络棋盘绘制示例
  5. codevs——1230 元素查找
  6. Node做网页爬虫时遇到的Html entites对象造成乱码
  7. elasticsearch索引模块缓存
  8. WIN2003 IIS6.0+PHP+ASP+MYSQL优化配置
  9. IDEA 工具从Json自动生成JavaBean
  10. 文字超长隐藏为...ie7不兼容的解决办法