linux

Linux SFTP命令大全及使用技巧

小樊
38
2025-10-19 02:07:32
栏目: 智能运维

Linux SFTP命令大全及使用技巧

一、基础连接与退出

SFTP(SSH File Transfer Protocol)是基于SSH的加密文件传输协议,用于在本地与远程Linux服务器之间安全传输文件。
连接远程服务器:使用username@hostname格式连接,若服务器SSH端口非默认的22,需通过-P参数指定(注意是大写P)。

sftp username@hostname          # 默认端口22连接
sftp -P 2222 username@hostname  # 指定端口2222连接

退出会话:输入exitbye即可断开连接。

二、常用文件传输命令

1. 单文件传输

2. 批量文件传输

3. 高级传输技巧

三、文件与目录管理命令

1. 远程服务器操作

2. 本地机器操作

3. 文件权限与所有权

四、高级使用技巧

1. 批处理脚本

将SFTP命令写入文本文件(如sftp_commands.txt),通过-b参数批量执行,适用于自动化重复任务(如定期备份)。

# 创建批处理文件
echo "put /local/file.txt /remote/dir/" > sftp_commands.txt
echo "get /remote/file.txt /local/dir/" >> sftp_commands.txt
echo "bye" >> sftp_commands.txt

# 执行批处理
sftp -b sftp_commands.txt username@hostname

2. 远程命令执行

在SFTP会话中,可通过!前缀执行本地Shell命令(如lspwd),或直接执行远程基本命令(如lsrm)。

# 执行本地命令
!ls /local/path               # 列出本地目录
# 执行远程命令
ls /remote/path               # 列出远程目录

3. 编辑远程文件

使用edit命令调用本地默认文本编辑器(如vimnano)编辑远程文件,修改后自动上传到服务器。

edit /remote/path/file.txt    # 编辑远程文件

4. 自动化脚本集成

结合Shell脚本与SFTP命令,实现无密码登录(通过SSH密钥)和自动化文件传输。例如,以下脚本自动上传本地文件到远程服务器:

#!/bin/bash
# SFTP服务器信息
USER="username"
HOST="example.com"
REMOTE_DIR="/remote/dir"
LOCAL_FILE="/local/file.txt"
PRIVATE_KEY="/path/to/private_key"

# 执行SFTP命令
sftp -i "$PRIVATE_KEY" -b - "$USER@$HOST" <<EOF
put "$LOCAL_FILE" "$REMOTE_DIR"
bye
EOF
echo "File transfer completed."

5. 结合其他工具

五、注意事项

0
看了该问题的人还看了