查看定时任务

crontab -l

  • 注册定时任务

crontab -e
然后就像 vim 一样编辑自己的定时任务。
如:
 * * * * * . /home/hadoop/timer/check_job.sh >> /home/hadoop/timer/logs/check_job.log

  • 定时任务解析
  1. *和*之间的空格,是必须的
  2. *分别代表:分,时,日,月,周
    • 1. 分 的取值范围为:0-59
    • 2. 时 的取值范围为:0-23
    • 3. 日 的取值范围为:1-31
    • 4. 月 的取值范围为:1-12
    • 5. 周 的取值范围为:0-7 
  3. *后面是需要执行的命令
  4. "." 代表是shell 命令,也可以使用 sh
  5. ">>" 前面的是需要定时调用的shell,后面是 需要输出的 log 文件的位置​
  • 实例

1.  * * * * * 代表每分钟执行一次,也可以写成 */1 * * * *,/1代表一分钟执行一次 
2.  30 */1 * * * 代表每小时的 30 分执行一次

以下是对文件的操作

  • 根据文件名称取得最大日期对文件

    • 文件名称的格式为:filter_cache_20171101.se
    max_date=0
    # get the latest file and copy to hdfs
    cd /home/hadoop/.../checkpoint/filter
    for dir in $(ls -l ./ | awk '/^d/{print $NF}')
    do
    if [[ -d $dir && $dir == *\_* ]]; then
    f_d=$(echo $dir | cut -d \_ -f 3 | cut -d \. -f 1)
    if [[ $max_date < $f_d ]]; then
    max_date=$f_d
    max_filter=$dir
    fi
    fi
    done
    echo " max date is : "$max_date
    echo " max filter is : "$max_filter

  • 复制最近日期对文件到hdfs

    • 如果文件存在,提示已经存在
    hadoop fs -test -e /data/.../bloom_filters/$max_filter
    if [[ $? == 0 ]]; then
    echo " filter is already exist : "$max_filterF
    else
    echo " start hdfs copy "
    hadoop fs -put $max_filter /data/.../bloom_filters
    fi

  • 设定需要删除过期文件的指定时间

    remove_week=$(date -d "$max_date 7 days ago" +%Y%m%d)
    echo " 删除本地序列化文件的日期界限:"$remove_week
    remove_date=$(date -d "$max_date 30 days ago" +%Y%m%d)
    echo " 删除文件 和 Hadoop filter 的日期界限:"$remove_date

  • 删除指定日期30天以外的本地文件,并且删除小于指定日期7天以外的指定文件夹的文件

    for r_dir in $(ls -l ./ | awk '/^d/{print $NF}')
    do
    if [[ -d $r_dir && $r_dir == *\_* ]]; then
    r_d=$(echo $r_dir | cut -d \_ -f 3 | cut -d \. -f 1)
    if [[ $r_d < $remove_date ]]; then
    echo " remove filter_dir is: "$r_dir
    rm -r $r_dir
    elif [[ $r_d < $remove_week ]]; then
    echo " remove filter is: "$r_dir
    rm -r $r_dir/*.FILTER.SER
    fi
    fi
    done

  • 删除hdfs上指定日期30以外的文件

最新文章

  1. [译] C# 5.0 中的 Async 和 Await (整理中...)
  2. MVC Code First 自动生成数据库时生成的表名会多了一个s
  3. Mac系统下React Native环境搭建
  4. MS SQL 监控错误日志的告警信息
  5. REST建模语言RAML介绍
  6. POJ 2699 The Maximum Number of Strong Kings Description
  7. MySQL注释符
  8. easyui-tabs图标(获取焦点时显示图标,失去焦点时隐藏图标)
  9. 数组prototype添加函数呢,采用回调判定函数内容
  10. nyoj 71 独木舟上的旅行
  11. Linux安装后的系统配置
  12. C#中获得汉字的首拼音(加强版)
  13. HTML5解决跨域问题
  14. java 启用新线程异步调用
  15. mac下的改装人生——制作mac os 启动盘
  16. swfupload组件后台获取中文文件名称乱码的问题解决
  17. MySQL系列教程(四)
  18. EntityFramework Core依赖注入上下文方式不同造成内存泄漏了解一下?
  19. Linux内存管理 (16)内存规整
  20. jenkins 判断某个job是否正在构建

热门文章

  1. android将对象序列化到文件:直接写文件与用Serializable接口的对比
  2. 187 Repeated DNA Sequences 重复的DNA序列
  3. Python基础第一天
  4. python的des和3des加解密
  5. ftp 上传与下载
  6. 关于jquery获取单选框value属性值为on的问题
  7. 源代码管理git的使用
  8. Java Socket 连接 Client端 和 Server端
  9. oauth 理解
  10. 【计算机网络】2.5 DNS:因特网的目录服务