生产实战shell,给安全部门提供日志

生产实战shell,给安全部门提供日志

#!/bin/bash

backup_dir="/data/rw_copy"
log_dir="/data/weblogic_log/test/yingyong"
nginx_log_dir="/data/nginx_log"
apache_log_dir="/data/apache_log"
weblogic_log_dir="/data/weblogic_log"

#日期
dates=("202301*" "202302*" "202303*" "202304*" "202305*")

backup_website_logs() {
  local website_name=$1
  local log_pattern=$2
  local website_log_dir=""

  # 根据网站名称选择对应的日志路径
  case $website_name in
    "test.com")
      website_log_dir="$log_dir"
      ;;
    "test2.com")
      website_log_dir="$nginx_log_dir"
      ;;
    "test3.com")
      website_log_dir="$nginx_log_dir"
      ;;
    "test4.com")
      website_log_dir="$weblogic_log_dir"
      ;;
    "test5.com")
      website_log_dir="$weblogic_log_dir"
      ;;
    "test6.com")
      website_log_dir="$apache_log_dir"
      ;;
    "test7.com")
      website_log_dir="$nginx_log_dir"
      ;;
    "test8.com")
      website_log_dir="$nginx_log_dir"
      ;;
    "test9.com")
      website_log_dir="$nginx_log_dir"
      ;;
    "test10.com")
      website_log_dir="$nginx_log_dir"
      ;;
    "test11.com")
      website_log_dir="$nginx_log_dir"
      ;;
    *)
      echo "未定义网站名称: $website_name"
      return
      ;;
  esac
  
  if [ -z "$website_log_dir" ]; then
    echo "未定义日志路径: $website_name"
    return
  fi
  
  
  #新建备份目录
  mkdir -p "$backup_dir/$website_name"
  
  for date in "${dates[@]}"; do
   #拷贝日志
    cp -R $website_log_dir/$date/$log_pattern $backup_dir/$website_name/
  done
  
  cd "$backup_dir"
  #压缩日志
  tar czvf "$website_name.tar.gz" "$website_name"
  #rm -rf "$backup_dir/$website_name"
}


# 使用多线程执行备份操作
backup_website_logs "test.com" "*log" &
backup_website_logs "test2.com" "test2*" &
backup_website_logs "test3.com" "test3*" &
backup_website_logs "test4.com" "test4*" &
backup_website_logs "test5.com" "test5*" &
backup_website_logs "test6.com" "test6*" &
backup_website_logs "test7.com" "test7*" &
backup_website_logs "test8.com" "test8*" &
backup_website_logs "test9.com" "test9*" &
backup_website_logs "test10.com" "test10*" &
backup_website_logs "test11.com" "test11*" &

# 等待所有后台进程执行完毕
wait

echo "执行完毕"

你可能感兴趣的:(linux,shell)