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

Linux sftp命令如何批量上传文件并保留权限?

Linux SFTP(SSH File Transfer Protocol)是一种安全的文件传输协议,它通过SSH(Secure Shell)连接提供加密的数据传输功能,确保文件在传输过程中不会被窃听或篡改,相比于传统的FTP协议,SFTP凭借其安全性和便捷性,成为Linux系统中管理远程文件的首选工具,本文将详细介绍Linux SFTP命令的使用方法,包括连接、文件传输、目录管理及权限设置等核心功能。

Linux sftp命令如何批量上传文件并保留权限?

连接与登录SFTP服务器

使用SFTP连接远程服务器时,需通过sftp命令结合用户名和主机地址实现,基本语法为:

sftp username@hostname

连接到IP为192.168.1.100的远程服务器(用户名为admin):

sftp admin@192.168.1.100

首次连接时,系统会提示保存远程主机的密钥指纹(输入yes确认),成功登录后,将进入SFTP命令行界面,提示符为sftp>

若需指定端口(如2222),可通过-P参数添加:

sftp -P 2222 admin@192.168.1.100

文件传输操作

SFTP支持本地与远程服务器之间的双向文件传输,常用命令如下:

上传文件

  • put local_file:上传单个文件到远程服务器当前目录。
    sftp> put /home/local.txt
  • put -r local_dir:上传整个目录(需添加-r递归参数)。
  • mput *.txt:批量上传所有.txt文件(mput支持通配符)。

下载文件

  • get remote_file:下载远程服务器文件到本地当前目录。
    sftp> get remote.txt
  • get -r remote_dir:下载整个目录。
  • mget *.log:批量下载所有.log文件。

传输进度与状态

传输过程中可通过progress命令开启实时进度显示:

Linux sftp命令如何批量上传文件并保留权限?

sftp> progress

再次输入progress可关闭该功能。

目录与文件管理

SFTP提供了类似Linux Shell的目录操作命令,便于管理远程文件系统:

目录操作

命令 功能描述 示例
cd remote_dir 切换远程服务器目录 sftp> cd /var/log
lcd local_dir 切换本地目录 sftp> lcd /home/user
pwd 查看当前远程目录路径 sftp> pwd
lpwd 查看当前本地目录路径 sftp> lpwd
mkdir dir_name 创建远程目录 sftp> mkdir backup
rmdir dir_name 删除空远程目录 sftp> rmdir temp

文件操作

  • ls:列出远程服务器当前目录文件(支持-l显示详细信息)。
  • lls:列出本地当前目录文件。
  • rm remote_file:删除远程文件。
  • rename old_name new_name:重命名远程文件。

权限与高级设置

文件权限修改

通过chmod命令可调整远程文件权限,格式与Linux一致:

sftp> chmod 755 script.sh

所有者修改

使用chown命令修改文件所有者(需sudo权限):

sftp> chown user:group file.txt

传输模式设置

默认情况下,SFTP使用二进制模式传输文件,适合所有类型,若需强制ASCII模式(如传输文本文件),可通过以下命令切换:

sftp> ascii

切换回二进制模式:

Linux sftp命令如何批量上传文件并保留权限?

sftp> binary

退出与断点续传

完成操作后,通过exitbye命令退出SFTP会话:

sftp> exit

若传输过程中因网络中断导致任务失败,可结合rsync实现断点续传,重新执行putget命令时,SFTP会自动检测未完成的传输并继续。

实用技巧与注意事项

  1. 批量操作:使用mgetmput时,可通过prompt命令关闭交互式确认(默认开启),实现全自动传输:
    sftp> prompt off
  2. 脚本化传输:通过-b参数指定脚本文件,实现自动化文件传输:
    sftp -b batch_script.txt admin@192.168.1.100

    其中batch_script.txt包含多行SFTP命令(如put file1.txtget file2.txt)。

  3. 安全性建议
    • 避免使用root用户直接登录SFTP,限制普通用户的传输目录(通过SSH配置文件/etc/ssh/sshd_config中的ChrootDirectory实现)。
    • 定期更新SSH服务,防止漏洞利用。

通过掌握上述SFTP命令,用户可以高效、安全地管理远程文件传输,满足日常运维与开发需求,无论是简单的文件备份还是复杂的数据同步,SFTP都能提供稳定可靠的解决方案。

赞(0)
未经允许不得转载:好主机测评网 » Linux sftp命令如何批量上传文件并保留权限?