63 lines
1.6 KiB
Bash
63 lines
1.6 KiB
Bash
|
#!/bin/bash
|
|||
|
|
|||
|
# <20><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>
|
|||
|
CYAN="\033[1;36m"
|
|||
|
RED="\033[0;31m"
|
|||
|
GREEN="\033[1;32m"
|
|||
|
RESET="\033[0m"
|
|||
|
|
|||
|
:<<'COMMENT'
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>OSS<EFBFBD>ڲ<EFBFBD>Ͱ<EFBFBD><EFBFBD><EFBFBD>ʴ洢·<EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
|
|||
|
<EFBFBD>Զ<EFBFBD>ʶ<EFBFBD><EFBFBD>Ŀ¼<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
COMMENT
|
|||
|
|
|||
|
# <20><><EFBFBD>屾<EFBFBD>ش洢·<E6B4A2><C2B7>
|
|||
|
LOCAL_PATH="/data/media"
|
|||
|
mkdir -p "$LOCAL_PATH" # ȷ<><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
# OSS<53>ڲ<EFBFBD>Ͱ<EFBFBD><CDB0><EFBFBD>ⲿͰ<E2B2BF><CDB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
|
|||
|
INTERNAL_S3CFG=~/.s3cfg-internal
|
|||
|
|
|||
|
# <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
if [ ! -f "$INTERNAL_S3CFG" ]; then
|
|||
|
echo -e "${RED}Internal S3 configuration file not found.${RESET}"
|
|||
|
exit 1
|
|||
|
fi
|
|||
|
|
|||
|
# <20><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>OSS·<53><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
if [ $# -eq 0 ]; then
|
|||
|
echo -e "${RED}No OSS paths provided. Please provide OSS paths as arguments.${RESET}"
|
|||
|
exit 1
|
|||
|
fi
|
|||
|
|
|||
|
# <20><><EFBFBD><EFBFBD>OSS·<53><C2B7><EFBFBD>б<EFBFBD>
|
|||
|
for oss_path in "$@"; do
|
|||
|
echo -e "${CYAN}Processing OSS path: $oss_path${RESET}"
|
|||
|
|
|||
|
# <20><><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>Ч
|
|||
|
if [[ ! $oss_path =~ ^s3:// ]]; then
|
|||
|
echo -e "${RED}Skipping invalid OSS path: $oss_path${RESET}"
|
|||
|
continue
|
|||
|
fi
|
|||
|
|
|||
|
# <20><>ȡĿ<C8A1><C4BF>·<EFBFBD><C2B7><EFBFBD>ı<EFBFBD><C4B1><EFBFBD>·<EFBFBD><C2B7>
|
|||
|
local_target="$LOCAL_PATH/$(basename "$oss_path")"
|
|||
|
if [[ $oss_path =~ /$ ]]; then
|
|||
|
# <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ¼<C4BF><C2BC>ȷ<EFBFBD><C8B7>β<EFBFBD><CEB2><EFBFBD><EFBFBD>б<EFBFBD><D0B1>
|
|||
|
local_target="$LOCAL_PATH/$(basename "$oss_path")/"
|
|||
|
mkdir -p "$local_target" # ȷ<><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ¼<C4BF><C2BC><EFBFBD><EFBFBD>
|
|||
|
fi
|
|||
|
|
|||
|
# ʹ<><CAB9> s3cmd sync ͬ<><CDAC><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>Ŀ¼
|
|||
|
echo -e "${GREEN}Syncing $oss_path to local path $local_target${RESET}"
|
|||
|
s3cmd -c "$INTERNAL_S3CFG" sync "$oss_path" "$local_target" # | grep "Downloaded"
|
|||
|
|
|||
|
if [ $? -eq 0 ]; then
|
|||
|
echo -e "${GREEN}Successfully synced $oss_path to $local_target${RESET}"
|
|||
|
else
|
|||
|
echo -e "${RED}Error: Failed to sync $oss_path.${RESET}"
|
|||
|
fi
|
|||
|
done
|
|||
|
|
|||
|
echo -e "${GREEN}Script execution completed.${RESET}"
|