03_delete_timer_file.sh 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. #!/bin/sh
  2. export HADOOP_CONF_DIR=/etc/taihao-apps/hadoop-conf
  3. HADOOP=/opt/apps/HADOOP-COMMON/hadoop-common-current/bin/hadoop
  4. PREDICT_HOME=/root/zhaohp/recommend-emr-dataprocess/predict
  5. origin_data_hdfs_dir=/dw/recommend/model/31_ad_sample_data_v3_auto
  6. bucket_feature_hdfs_dir=/dw/recommend/model/33_ad_train_data_v3_auto
  7. # 删除五天之前的预测结果文件
  8. delete_predict_5d_ago() {
  9. echo "=========== 开始删除五天前的预测结果文件 $(date "+%Y-%m-%d %H:%M:%d") ==========="
  10. tmp_file_name=./files_to_delete.txt
  11. # 查询五天前的预测结果文件,并保存到临时文件
  12. find "$PREDICT_HOME" -type f -mtime +5 > "${tmp_file_name}"
  13. # 逐行读取临时文件中的路径并删除文件
  14. while IFS= read -r file; do
  15. echo "Deleting: $file"
  16. rm -f "$file"
  17. done < "${tmp_file_name}"
  18. # 删除临时文件
  19. rm -f "${tmp_file_name}"
  20. echo "=========== 删除五天前的预测结果文件结束 $(date "+%Y-%m-%d %H:%M:%d") ==========="
  21. }
  22. # 删除七天之前 HDFS中的原始特征数据
  23. delete_hdfs_origin_data_7d_ago() {
  24. SEVEN_DAYS_AGO=$(date -d "7 days ago" +%Y-%m-%d)
  25. $HADOOP fs -ls $origin_data_hdfs_dir | while read line
  26. do
  27. dir=$(echo $line | awk '{print $8}')
  28. modified_date=$(echo $line | awk '{print $6}')
  29. if [[ "${modified_date}" < "${SEVEN_DAYS_AGO}" ]]; then
  30. echo "Deleting: ${dir}"
  31. $HADOOP fs -rm -r -skipTrash ${dir}
  32. fi
  33. done
  34. }
  35. # 删除七天之前 HDFS中的特征分桶数据
  36. delete_hdfs_bucket_feature_7d_ago() {
  37. SEVEN_DAYS_AGO=$(date -d "7 days ago" +%Y-%m-%d)
  38. $HADOOP fs -ls $bucket_feature_hdfs_dir | while read line
  39. do
  40. dir=$(echo $line | awk '{print $8}')
  41. modified_date=$(echo $line | awk '{print $6}')
  42. if [[ "${modified_date}" < "${SEVEN_DAYS_AGO}" ]]; then
  43. echo "Deleting: ${dir}"
  44. $HADOOP fs -rm -r -skipTrash ${dir}
  45. fi
  46. done
  47. }
  48. main() {
  49. # 删除五天前的预测结果文件
  50. delete_predict_5d_ago
  51. # 删除七天之前的HDFS中的特征原始数据
  52. delete_hdfs_origin_data_7d_ago
  53. # 删除七天之前的HDFS中的特征分桶数据
  54. delete_hdfs_bucket_feature_7d_ago
  55. }
  56. main