使用Linux SFTP进行文件同步可以通过多种方法实现,以下是几种常见的方法:
rsync
命令rsync
是一个非常强大的文件同步工具,可以通过SSH协议进行安全传输。
安装rsync
(如果尚未安装):
sudo apt-get install rsync # Debian/Ubuntu
sudo yum install rsync # CentOS/RHEL
基本同步命令:
rsync -avz -e ssh /本地路径/ user@远程主机:/远程路径/
-a
:归档模式,表示递归传输并保持符号链接、文件权限、时间戳等。-v
:详细模式,显示详细的同步过程。-z
:压缩文件数据在传输过程中。-e ssh
:指定使用SSH协议进行传输。增量同步:
rsync
默认就是增量同步,只会传输发生变化的文件。
定时同步:
可以使用cron
定时任务来定期执行同步命令。例如,每小时同步一次:
crontab -e
添加以下行:
0 * * * * rsync -avz -e ssh /本地路径/ user@远程主机:/远程路径/
lftp
命令lftp
是一个功能强大的文件传输工具,支持SFTP协议。
安装lftp
(如果尚未安装):
sudo apt-get install lftp # Debian/Ubuntu
sudo yum install lftp # CentOS/RHEL
基本同步命令:
lftp -e 'mirror --reverse --delete /本地路径/ user@远程主机:/远程路径/; quit'
mirror
:镜像目录,--reverse
表示从本地到远程,--delete
表示删除远程目录中本地不存在的文件。sftp
命令手动同步虽然不如rsync
方便,但也可以手动使用sftp
进行文件同步。
连接到远程主机:
sftp user@远程主机
上传文件:
put /本地路径/文件名 /远程路径/
下载文件:
get /远程路径/文件名 /本地路径/
退出:
exit
rsync
时,注意路径的正确性和权限设置。通过以上方法,你可以方便地使用Linux SFTP进行文件同步。