将远程服务器文件夹同步到本地 Mac
2024-09-01 tech mac linux 1 mins 691 字
#!/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
注意事项
-
安全性:在脚本中包含了远程服务器的登录信息,请确保这个脚本的权限设置是安全的,避免未经授权的用户访问。此外,使用
scp
和ssh
时,使用SSH密钥认证以增强安全性。 -
文件路径:确保
local_dir
目录存在且可写,如果目录不存在,scp
操作将会失败。如有必要可以在脚本中加入检查和创建目录的逻辑。 -
删除操作:在删除远程服务器文件之前,务必确保文件已经成功下载至本地。这里可以考虑在删除之前进行额外的校验,例如校验文件的MD5哈希值,以确保文件完整性。