欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

scan_script.sh 扫描脚本 扫描关键字脚本 我自己亲自做的 有大用 有大大用

 脚本的执行方式 ./scan_script.sh aa bb 用户名  "帐户" "密码" 


#!/bin/bash
#
urlencode() {
  local length="${#1}"
  for (( i = 0; i < length; i++ )); do
    local c="${1:i:1}"
    case $c in
      [a-zA-Z0-9.~_-]) printf '%s' "$c" ;;   # 安全字符原样输出
      *) printf '%%%02X' "'$c" ;;            # 其他字符转 %XX
    esac
  done
}
REMOTE_HOST="192.168.70.200"
REMOTE_SHARE="AAABBBB%24/MP"
SMBUSER=$(urlencode "$4")
SMBPASS=$(urlencode "$5")
time=`date +"%Y-%m-%d"`
MOUNT_POINT="/tmp/.newmount_CpFile"
if [ ! -d  $MOUNT_POINT ]; then
    mkdir $MOUNT_POINT
fi

# 先把搜索结果存到数组里
files=()
while IFS= read -r -d '' file; do
    if [[ "$file" != /mnt/* && "$file" != /System/* && "$file" != /Applications/* && "$file" != /private/*  ]]; then
          echo "${file}" | grep -E -i "AAAA|BBBB|CCCC|DDDD|EEEE|FFFF|GGGG|HHHH|IIII|JJJJ|KKKK"
          if [ $? -eq 0 ]; then
             if [ -f "${file}" ];then
                 files+=("$file")
             fi
          fi
    fi
done < <(mdfind '((kMDItemFSName == "*AAAA*"cd) || (kMDItemFSName == "*BBBB*"cd) || (kMDItemFSName == "*CCCC*"cd) || (kMDItemFSName == "*DDDD*"cd) || (kMDItemFSName == "*EEEE*"cd) || (kMDItemFSName == "*FFFF*"cd) || (kMDItemFSName == "*GGGG*"cd) || (kMDItemFSName == "*HHHH*"cd) || (kMDItemFSName == "*IIII*"cd) || (kMDItemFSName == "*JJJJ*"cd) || (kMDItemFSName == "*KKKK*"cd) ))' -0)
if [[ ${#files[@]} -eq 0 ]];then
  #(/usr/bin/osascript -e "display dialog \"没有关键字文件\" buttons {\"OK\"} default button \"OK\" with title \"敏感文件\"  ")
  exit 0
fi
# 确保挂载点目录存在
if [[ ! -d "$MOUNT_POINT" ]]; then
     mkdir -p "$MOUNT_POINT"
fi
# 如果没挂载,挂载共享
if ! mount | grep -q "$MOUNT_POINT"; then
    mount_smbfs "//$SMBUSER:$SMBPASS@$REMOTE_HOST/$REMOTE_SHARE" "$MOUNT_POINT"
fi

#建目录,建文件
TARGET_DIR1="${HOSTNAME}_$3/${time}_Documentbackup"
mkdir -p "${MOUNT_POINT}/${TARGET_DIR1}"
TARGET_DIR2="${HOSTNAME}_$3"
touch  "${MOUNT_POINT}/${TARGET_DIR2}/${time}.txt"
for file in "${files[@]}"; do
    echo "正在复制: $file"
    \cp -f "$file" "$MOUNT_POINT/$TARGET_DIR1/"
done
#keyword_file=""
echo   "" > "${MOUNT_POINT}/${TARGET_DIR2}/${time}.txt"
for file in "${files[@]}";do
  #keyword_file="${keyword_file}${file}\n"
  echo ${file} >> "${MOUNT_POINT}/${TARGET_DIR2}/${time}.txt"
done

umount "$MOUNT_POINT"



普通分类: