使用Unix Shell脚本从HBASE中删除30天以前的快照

使用Unix Shell脚本从HBASE中删除30天以前的快照,shell,unix,hbase,hadoop2,Shell,Unix,Hbase,Hadoop2,我想使用shell脚本从HBASE中删除30天以前的快照。我已经写了下面的函数,但该函数将删除所有快照。还需要实施30天以前的逻辑 deleteSnapshot() { echo -e "list_snapshots '${NAMESPACE}_${TABLE}'" | hbase shell -n | grep ''${NAMESPACE}'_'${TABLE}'' 2>/dev/null local RET=$? if [ ${RET} -eq 0 ]; then

我想使用shell脚本从
HBASE
中删除30天以前的快照。我已经写了下面的函数,但该函数将删除所有快照。还需要实施30天以前的逻辑

deleteSnapshot() {

  echo -e "list_snapshots '${NAMESPACE}_${TABLE}'" | hbase shell -n | grep ''${NAMESPACE}'_'${TABLE}'' 2>/dev/null

  local RET=$?

  if [ ${RET} -eq 0 ]; then
      echo "Deleting Snapshot ${NAMESPACE}_${TABLE}"
      echo -e "delete_snapshot '${NAMESPACE}_${TABLE}'" | hbase shell -n 2>/dev/null
      echo "Successfully deleted Snapshot ${NAMESPACE}_${TABLE}"
  fi
}

这方面需要帮助。

您可以将时间戳附加到快照名称,并应用正则表达式以仅匹配超过30天的快照

您可以参考以下文档:

一次删除多个快照的快捷方式: 如果我们的快照名称为:表\u名称\u快照\u 20190701

delete_all_snapshot 'table_name_snapshot_201907.*'

这将删除7月份的所有内容。名称中的
用作快照名称其余部分的截止线(我们已将其替换为通配符
*

您应该告诉我们您已经做过的事情有哪些不起作用。