我想创建一个 shell 脚本,它从源服务器复制备份目录,并通过 sftp 命令将它们放入目标服务器上的不同目录中。另外,将文件放入目标服务器后,我想比较源服务器和目标服务器的大小,以验证 sftp 是否完全成功。
答案1
使用指定的工具而不是sftp
执行此操作,例如rsync
:
来自源服务器:
rsync -av -e ssh /path/to/files target-server:/path/to/backup/
从目标服务器:
rsync -av -e ssh source-server:/path/to/files /path/to/backup/
这样做的好处是它只会复制已更改的文件,甚至仅复制文件中的更改。默认情况下,它会比较大小和修改时间,但您可以-c, --checksum
根据校验和进行比较。
添加--delete
以删除源服务器上已删除的文件。