在Linux系统中,使用SFTP(SSH File Transfer Protocol)进行文件同步可以通过多种方法实现。以下是两种常用的方法:
rsync
命令结合SFTPrsync
是一个非常强大的文件同步工具,它可以通过SSH协议进行安全传输。即使目标服务器不支持SFTP,只要支持SSH,就可以使用rsync
。
安装rsync
(如果尚未安装):
sudo apt-get install rsync # Debian/Ubuntu
sudo yum install rsync # CentOS/RHEL
使用rsync
进行文件同步:
rsync -avz -e ssh /本地路径/ user@远程服务器:/远程路径/
参数解释:
-a
:归档模式,表示递归传输并保持符号链接、文件权限、时间戳、用户和组信息。-v
:详细模式,显示传输过程中的详细信息。-z
:压缩文件数据在传输过程中。-e ssh
:指定使用SSH作为传输协议。例如,将本地目录/home/user/local_folder
同步到远程服务器的/home/user/remote_folder
:
rsync -avz -e ssh /home/user/local_folder user@remote_server:/home/user/remote_folder
sftp
命令手动同步如果你更喜欢使用SFTP命令行工具进行手动同步,可以按照以下步骤操作:
连接到远程服务器:
sftp user@remote_server
输入密码后,你将进入SFTP交互模式。
上传文件或目录:
put /本地路径/文件名 /远程路径/
mkdir /远程路径/目录名
put -r /本地路径/目录名 /远程路径/目录名
下载文件或目录:
get /远程路径/文件名 /本地路径/
mkdir /本地路径/目录名
get -r /远程路径/目录名 /本地路径/目录名
退出SFTP会话:
exit
rsync
时,注意目标路径是否存在,如果不存在,rsync
会自动创建。rsync
进行同步时,可以添加--delete
选项来删除目标目录中存在但源目录中不存在的文件:rsync -avz --delete -e ssh /本地路径/ user@远程服务器:/远程路径/
通过以上方法,你可以方便地在Linux系统中使用SFTP进行文件同步。