服务器测评网
我们一直在努力

Linux下sftp命令常用参数有哪些?新手必学操作指南

在Linux系统中,SFTP(Secure File Transfer Protocol)是一种基于SSH的安全文件传输协议,它通过加密传输和认证机制确保数据传输的安全性,广泛应用于服务器管理、文件备份等场景,与传统的FTP相比,SFTP提供了更强的安全性和更丰富的功能,本文将详细介绍Linux环境下SFTP命令的使用方法、常用操作及实用技巧。

Linux下sftp命令常用参数有哪些?新手必学操作指南

SFTP连接与登录

使用SFTP之前,需确保目标服务器已启用SSH服务(SFTP依赖SSH协议),通过终端执行sftp命令即可连接远程服务器,基本语法为:

sftp [用户名]@[服务器地址] [-p 端口号]

以用户root连接IP为168.1.100的服务器(默认端口22):

sftp root@192.168.1.100

若SSH服务非默认端口,需通过-p参数指定,如-p 2222,连接成功后,会显示sftp>提示符,进入SFTP交互式环境。

首次连接时,若服务器主机密钥未本地记录,系统会提示确认(输入yes即可),后续连接将不再提示,若需避免交互式输入,可在~/.ssh/config中配置主机别名,

Host server1
    HostName 192.168.1.100
    User root
    Port 22

之后可直接通过sftp server1连接。

Linux下sftp命令常用参数有哪些?新手必学操作指南

文件传输基础命令

SFTP支持本地(以l前缀标识)和远程(无前缀)文件系统操作,常用传输命令包括:

上传文件

  • put [本地文件] [远程文件]:上传本地文件到远程服务器,若未指定远程路径,默认保存在当前远程目录。
    sftp> put /local/path/file.txt /remote/path/file.txt
  • mput [本地文件模式]:批量上传本地文件,支持通配符。
    sftp> mput *.txt  # 上传所有.txt文件

下载文件

  • get [远程文件] [本地文件]:从远程服务器下载文件到本地。
    sftp> get /remote/path/file.txt /local/path/file.txt
  • mget [远程文件模式]:批量下载远程文件,支持通配符。
    sftp> mget *.log  # 下载所有.log文件

传输进度与状态

传输过程中,可通过progress命令开启实时进度显示,默认关闭:

sftp> progress
sftp> put large_file.zip  # 开启后显示传输速度和剩余时间

目录与文件管理

SFTP提供了丰富的目录和文件管理命令,操作逻辑与Linux命令行类似:

目录操作

  • ls [远程路径]:列出远程目录内容,支持-l(详细列表)、-a(显示隐藏文件)选项。
    sftp> ls -l /remote/path
  • cd [远程路径]:切换远程工作目录,cd ~可返回用户主目录。
  • lcd [本地路径]:切换本地工作目录(区别于cd)。
  • mkdir [远程目录名]:在远程服务器创建目录。
  • rmdir [远程目录名]:删除远程空目录。

文件操作

  • rm [远程文件]:删除远程文件。
  • rename [旧文件名] [新文件名]:重命名远程文件。
  • chmod [权限] [文件名]:修改远程文件权限,如chmod 755 script.sh
  • chown [用户:组] [文件名]:修改远程文件所有者(需足够权限)。

文件属性查看

通过ls -l可查看远程文件的详细信息,包括权限、所有者、大小、修改时间等,本地文件属性可通过llls -l的别名)查看。

常用目录与文件操作命令对比

功能 远程命令 本地命令(需l前缀)
列出文件 ls [-l] ll [-l]
切换目录 cd [路径] lcd [路径]
创建目录 mkdir [目录名] lmkdir [目录名]
删除文件 rm [文件名] lrm [文件名]

高级操作与实用技巧

批量传输与断点续传

  • 批量传输mputmget支持通配符,但需注意文件名中包含空格时需用引号括起,如mput "file name*.txt"
  • 断点续传:若传输中断(如网络波动),重新执行putget命令时,SFTP会自动检测已传输部分并续传,无需手动处理。

同步目录

通过get -rput -r可递归传输整个目录:

Linux下sftp命令常用参数有哪些?新手必学操作指南

sftp> put -r /local/dir /remote/dir  # 上传整个目录
sftp> get -r /remote/dir /local/dir  # 下载整个目录

直接执行远程命令

在SFTP环境中,可通过![命令]执行本地终端命令,![命令]执行远程服务器命令(需通过SSH预先执行)。

sftp> !ls /local/path  # 查看本地目录
sftp> !pwd             # 查看本地当前路径

脚本化SFTP操作

通过-b参数可指定脚本文件,实现非交互式批量操作,创建脚本sftp_script.txt

put /local/file1.txt /remote/file1.txt
get /remote/file2.txt /local/file2.txt
exit

执行命令:

sftp -b sftp_script.txt user@server

常见问题与解决方案

  1. 连接失败:检查服务器SSH服务状态(systemctl status sshd)、防火墙规则(开放22端口或自定义端口),以及用户名和密码是否正确。
  2. 权限不足:确保当前用户对目标文件或目录有读写权限,可通过chmodchown调整。
  3. 传输中断:检查网络连接稳定性,若文件过大,可分割传输或使用rsync替代(需服务器支持)。
  4. 无法上传/下载:确认磁盘空间是否充足,以及SELinux或AppArmor安全策略是否阻止了操作。

SFTP凭借其安全性和易用性,成为Linux环境下文件传输的首选工具,掌握基本命令(如putgetls)和高级技巧(如批量传输、脚本化操作),可大幅提升工作效率,在实际应用中,建议结合SSH密钥认证(避免密码泄露),并通过配置文件简化连接操作,以实现更高效、安全的文件管理。

赞(0)
未经允许不得转载:好主机测评网 » Linux下sftp命令常用参数有哪些?新手必学操作指南