将远程服务器文件夹同步到本地 Mac

#!/bin/bash
set -e

# 设置远程机器的地址、用户名和密码
remote_host="user@a.b.c"
remote_dir="/remote_dir/"
local_dir="/local_dir/"

# 将远程机器目录下的所有文件复制到本地目录
scp -r "$remote_host:$remote_dir"* "$local_dir"

if [ $? -eq 0 ]; then
    echo "下载 $remote_dir$local_dir ok了!"
    ssh "$remote_host" "rm -rf ${remote_dir}*"

    if [ $? -eq 0 ]; then
        echo "删除 $remote_dir ok了!"
    else
        echo "删除 $remote_dir 失败了!"
        exit 1
    fi
else
    echo "拷贝到本地失败"
    exit 1
fi

注意事项

  • 安全性:在脚本中包含了远程服务器的登录信息,请确保这个脚本的权限设置是安全的,避免未经授权的用户访问。此外,使用scpssh时,使用SSH密钥认证以增强安全性。

  • 文件路径:确保local_dir目录存在且可写,如果目录不存在,scp操作将会失败。如有必要可以在脚本中加入检查和创建目录的逻辑。

  • 删除操作:在删除远程服务器文件之前,务必确保文件已经成功下载至本地。这里可以考虑在删除之前进行额外的校验,例如校验文件的MD5哈希值,以确保文件完整性。


selenium 指定 chrome 和 chromedriver 位置 在 Windows 7 上使用批处理脚本同步两个远程服务器间的文件