39 lines
1.1 KiB
Bash
39 lines
1.1 KiB
Bash
source_dir="/c/tiles/"
|
||
destination="/home/heco/tiles/"
|
||
targets=(
|
||
"202 王家山|192.168.101.7|35024"
|
||
"203 灵山岛|192.168.101.7|35022"
|
||
# "204 乳山口|192.168.204.116|22"
|
||
# "215 沙子口2|192.168.215.116|22"
|
||
# "208 烟台宜尚|192.168.208.116|22"
|
||
)
|
||
test -d "$source_dir" || {
|
||
echo "源目录不存在:$source_dir" >&2
|
||
exit 1
|
||
}
|
||
for target in "${targets[@]}"; do
|
||
IFS='|' read -r name host port <<<"$target"
|
||
echo "========== 开始传输:$name,$host:$port =========="
|
||
ssh -p "$port" \
|
||
-o ConnectTimeout=15 \
|
||
-o ServerAliveInterval=30 \
|
||
-o ServerAliveCountMax=10 \
|
||
"heco@$host" \
|
||
"command -v rsync >/dev/null && mkdir -p '$destination'" || {
|
||
echo "连接失败或远端没有安装 rsync:$name" >&2
|
||
continue
|
||
}
|
||
rsync -rtvh \
|
||
--partial \
|
||
--partial-dir=.rsync-partial \
|
||
--info=progress2 \
|
||
-e "ssh -p $port -o ConnectTimeout=15 -o ServerAliveInterval=30 -o ServerAliveCountMax=10" \
|
||
"$source_dir" \
|
||
"heco@$host:$destination"
|
||
if [ "$?" -eq 0 ]; then
|
||
echo "========== 传输完成:$name =========="
|
||
else
|
||
echo "========== 传输失败:$name ==========" >&2
|
||
fi
|
||
done
|