作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在构建一个 bash 脚本,用于删除指定目录中早于 x 天的日志文件。如您所知,“find”在 hadoop fs 上不可用,所以我在 ruby 中找到了一种巧妙的方法,并且想知道是否有一种方法可以在 bash 中实现这一点。
In Ruby:
#!/usr/bin/env ruby
require "date"
five_days_ago = Date.parse(Time.now.to_s) - 5
IO.popen("hadoop fs -lsr /tmp").each_line do |line|
permissions,replication,user,group,size,mod_date,mod_time,path = *line.split(/\s+/)
if (mod_date)
if Date.parse(mod_date.to_s) < five_days_ago
puts line
if permissions.split('')[0] == 'd'
puts "deleting #{path}"
`hadoop fs -rmr -skipTrash #{path}`
dirname = path
next
end
next if path.start_with? dirname
`hadoop fs -rm -skipTrash #{path}`
end
end
end
最佳答案
这是我在bash中使用的,你可以试试:
例如grep 所有 8 个月前的文件。根据需要更改 grep 正则表达式模式:
hadoop fs -ls -R <location> | grep '.*2016-[0-8].*' | awk '{print $8}'
删除文件:
hadoop fs -rm -r `hadoop fs -ls -R <location> | grep '.*2016-[0-8].*' | awk '{print $8}'`
关于ruby - 在 hadoop 上删除早于 x 天的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38641756/
我有一个 javascript 函数,可以执行以下操作; 它将日期编辑框设置为与另一个日期编辑相同的日期。但是我希望它将 txt_Testin
我有一个输入框,类型为“时间”。我想将迟到时间 (23:00pm) 作为最小值,将早期时间 (6:00am) 作为最大值 - 创建一个 23pm - 6am 的范围。 (即中午 11 点、中午 12
使用 Joda 时间并获得类似以下行为的最简单方法是什么: public boolean check( DateTime checkTime ) { DateTime someTime = n
我想计算 updated_at 比 created_at 早 2 小时的记录。 代码 $teLang = $kentekens->where('updated_at', '>', 'created_a
我是一名优秀的程序员,十分优秀!