Linux计算时间差






1、Linux计算时间差


在Linux中,计算时间差通常是为了统计、监控或调试。时间差可以用来衡量任务执行的时间,或者两个事件之间的间隔。例如,响应时间、执行时间、定时任务与延时处理等

以下是一个示例:

#!/bin/bash

sta_dt=$(date +"%Y-%m-%d %H:%M:%S")
end_dt=$(date +"%Y-%m-%d %H:%M:%S")
# 方式1:使用date命令
# 1)日期转时间戳(单位:s)
sta_timestamp=$(date -d "$sta_dt" +%s)
end_timestamp=$(date -d "$end_dt" +%s)
# 2)计算差值(单位:s)
diff_timestamp=$((end_timestamp - sta_timestamp))
# 方式2:使用timediff命令(单位:min)
diff_min=$(timediff -r "%M" "$sta_dt" "$end_dt")

2、时间差的应用


需求描述:删除HDFS上指定目录下超过3天的文件

实现过程如下:

#!/bin/bash

# 当前时间
now_dt=`date "+%Y-%m-%d %H:%M"`
# 转换为时间戳(s)
now_timestamp=$(date -d "$now_dt" +%s)
# 遍历HDFS目录
for item in `hdfs dfs -ls /tmp/log/ | sed '1d' | sed -r 's/\s+/^/g'`
do
    date_time=`echo $item | awk -F'^' '{print $6,$7}'`
    item_file=`echo $item | awk -F'^' '{print $8}'`
    # date_time转换为时间戳(s)
    datetime_timestamp=$(date -d "$date_time" +%s)
    # 计算时间差
    timestamp_diff=$((now_timestamp - datetime_timestamp))
    # 删除超过三天的文件
    if [[ $timestamp_diff -gt 259200 ]]; then
        hdfs dfs -rm $item_file
    fi
done

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值