Linux笔记:定时任务和文件操作
2024-10-22 02:44:38
查看定时任务
crontab -l
- 注册定时任务
crontab -e
然后就像 vim 一样编辑自己的定时任务。
如:
* * * * * . /home/hadoop/timer/check_job.sh >> /home/hadoop/timer/logs/check_job.log
- 定时任务解析
- *和*之间的空格,是必须的
- *分别代表:分,时,日,月,周
1. 分 的取值范围为:0-59
2. 时 的取值范围为:0-23
3. 日 的取值范围为:1-31
4. 月 的取值范围为:1-12
5. 周 的取值范围为:0-7
- *后面是需要执行的命令
- "." 代表是shell 命令,也可以使用 sh
- ">>" 前面的是需要定时调用的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以外的文件
最新文章
- [译] C# 5.0 中的 Async 和 Await (整理中...)
- MVC Code First 自动生成数据库时生成的表名会多了一个s
- Mac系统下React Native环境搭建
- MS SQL 监控错误日志的告警信息
- REST建模语言RAML介绍
- POJ 2699 The Maximum Number of Strong Kings Description
- MySQL注释符
- easyui-tabs图标(获取焦点时显示图标,失去焦点时隐藏图标)
- 数组prototype添加函数呢,采用回调判定函数内容
- nyoj 71 独木舟上的旅行
- Linux安装后的系统配置
- C#中获得汉字的首拼音(加强版)
- HTML5解决跨域问题
- java 启用新线程异步调用
- mac下的改装人生——制作mac os 启动盘
- swfupload组件后台获取中文文件名称乱码的问题解决
- MySQL系列教程(四)
- EntityFramework Core依赖注入上下文方式不同造成内存泄漏了解一下?
- Linux内存管理 (16)内存规整
- jenkins 判断某个job是否正在构建