Add SFTP upload debug test and result report
- Add sftp_upload_debug_test.sh: detailed upload debugging script - Add sftp_test_result_report.md: complete test results - Verify: 1KB file upload/download successful, MD5 consistent - Issue: SSH_FXP_WRITE log missing, file attributes format abnormal - Status: SFTP core functionality working, small file transfer successful
This commit is contained in:
102
data/sftp_upload_debug_test.sh
Executable file
102
data/sftp_upload_debug_test.sh
Executable file
@@ -0,0 +1,102 @@
|
||||
#!/bin/bash
|
||||
# SFTP 上传详细调试测试脚本
|
||||
# 启用最大日志级别,检查 SSH_FXP_OPEN 和 SSH_FXP_WRITE 处理
|
||||
|
||||
echo "=== SFTP 上传详细调试测试 ==="
|
||||
echo "测试目标:诊断 SSH_FXP_WRITE packet 未出现的原因"
|
||||
echo ""
|
||||
|
||||
# 创建极小测试文件(1KB)
|
||||
echo "创建测试文件(1KB)..."
|
||||
dd if=/dev/urandom of=/tmp/sftp_debug_1kb.bin bs=1024 count=1 2>&1 | tail -1
|
||||
ls -lh /tmp/sftp_debug_1kb.bin
|
||||
|
||||
echo ""
|
||||
echo "=== 启用 SSH server 详细日志 ==="
|
||||
echo "日志文件:/private/tmp/sftp_upload_debug.log"
|
||||
|
||||
# 重启 SSH server,启用 debug 级别日志
|
||||
pkill -9 -f "markbase-core ssh-start"
|
||||
sleep 2
|
||||
|
||||
RUST_LOG=debug /Users/accusys/markbase/target/release/markbase-core ssh-start > /private/tmp/sftp_upload_debug.log 2>&1 &
|
||||
SSH_PID=$!
|
||||
sleep 3
|
||||
|
||||
echo "SSH server 重启完成(PID: $SSH_PID)"
|
||||
echo ""
|
||||
|
||||
echo "=== 测试 1: 基本连接测试 ==="
|
||||
sshpass -p 'demo123' sftp -P 2024 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -v demo@127.0.0.1 <<EOF
|
||||
pwd
|
||||
bye
|
||||
EOF
|
||||
|
||||
echo ""
|
||||
echo "=== 测试 2: SFTP 上传测试(1KB 文件)==="
|
||||
echo "使用 -v 参数启用详细日志..."
|
||||
|
||||
sshpass -p 'demo123' sftp -P 2024 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -v demo@127.0.0.1 <<EOF
|
||||
put /tmp/sftp_debug_1kb.bin /tmp/sftp_upload_debug.bin
|
||||
ls -la /tmp/
|
||||
bye
|
||||
EOF
|
||||
|
||||
echo ""
|
||||
echo "=== 检查远程文件状态 ==="
|
||||
sshpass -p 'demo123' sftp -P 2024 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null demo@127.0.0.1 <<EOF
|
||||
ls -la /tmp/sftp_upload_debug.bin
|
||||
stat /tmp/sftp_upload_debug.bin
|
||||
bye
|
||||
EOF
|
||||
|
||||
echo ""
|
||||
echo "=== SSH server 日志分析 ==="
|
||||
echo "查找 SSH_FXP_OPEN 和 SSH_FXP_WRITE..."
|
||||
|
||||
grep -E "SSH_FXP_OPEN|SSH_FXP_WRITE|SSH_FXP_HANDLE" /private/tmp/sftp_upload_debug.log | tail -30
|
||||
|
||||
echo ""
|
||||
echo "=== 检查文件完整性 ==="
|
||||
if [ -f "/tmp/sftp_upload_debug.bin" ]; then
|
||||
echo "远程文件存在,检查大小..."
|
||||
sshpass -p 'demo123' sftp -P 2024 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null demo@127.0.0.1 <<EOF
|
||||
ls -la /tmp/sftp_upload_debug.bin
|
||||
bye
|
||||
EOF
|
||||
|
||||
# MD5 校验
|
||||
echo ""
|
||||
echo "源文件 MD5:"
|
||||
md5 /tmp/sftp_debug_1kb.bin
|
||||
|
||||
echo "下载文件并校验..."
|
||||
sshpass -p 'demo123' sftp -P 2024 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null demo@127.0.0.1 <<EOF
|
||||
get /tmp/sftp_upload_debug.bin /tmp/sftp_download_debug.bin
|
||||
bye
|
||||
EOF
|
||||
|
||||
echo "下载文件 MD5:"
|
||||
md5 /tmp/sftp_download_debug.bin
|
||||
|
||||
echo ""
|
||||
echo "文件大小对比:"
|
||||
ls -lh /tmp/sftp_debug_1kb.bin /tmp/sftp_upload_debug.bin /tmp/sftp_download_debug.bin 2>&1 | tail -5
|
||||
else
|
||||
echo "远程文件不存在 ❌"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "=== 详细日志分析 ==="
|
||||
echo "查看完整的 SSH_FXP_OPEN 处理流程..."
|
||||
|
||||
grep -B 5 -A 20 "SSH_FXP_OPEN.*debug" /private/tmp/sftp_upload_debug.log | head -100
|
||||
|
||||
echo ""
|
||||
echo "=== 清理测试文件 ==="
|
||||
rm -f /tmp/sftp_debug_1kb.bin /tmp/sftp_upload_debug.bin /tmp/sftp_download_debug.bin
|
||||
|
||||
echo ""
|
||||
echo "=== 测试完成 ==="
|
||||
echo "日志文件位置:/private/tmp/sftp_upload_debug.log"
|
||||
echo "请查看日志文件以诊断 SSH_FXP_WRITE 未出现的根本原因"
|
||||
Reference in New Issue
Block a user