在执行上传文件命令时:
scp -i ~/Documents/cert/qa.pem /Users/testmanzhang/Documents/test/2025_script/analyze_viewer_logs.sh ec2-user@55.86.xxx.33:/home/ec2-user/kvs-webrtc-sdk
报错:
scp: dest open "/home/ec2-user/analyze_viewer_logs.sh": Failure
scp: failed to upload file /Users/testmanzhang/Documents/test/2025_script/analyze_viewer_logs.sh to /home/ec2-user/
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: channel 0: free: client-session, nchannels 1
Transferred: sent 2752, received 2416 bytes, in 0.6 seconds
Bytes per second: sent 4824.0, received 4235.1
debug1: Exit status 0
因为我上周还上传成功,这周就失败了,很奇怪,难道真的是环境问题千奇百怪吗?还是其他人“动了手脚”?
没办法,一步一步排除吧!
从报错的内容看,核心问题是:目标路径 /home/ec2-user/ 无法写入
一、查看目标文件夹权限
ls -ld /home/ec2-user
得到结果为:
drwx------. 7 ec2-user ec2-user 16384 Jun 13 09:53 /home/ec2-user/
drwx------.:权限字段
- d:表示这是一个目录(directory)
- rwx------:表示权限是:
(1)所有者(user)ec2-user:有读(r)、写(w)、执行(x)权限
(2)所属组(group)ec2-user:无权限(—)
(3)其他用户(others):无权限(—)
(4).:SELinux 安全上下文标志(说明此系统启用了 SELinux)
7:硬链接数
- 表示这个目录有 7 个链接数(包括自身 .、子目录的 … 等)
ec2-user ec2-user:所有者和所属组
- 第一个 ec2-user:该目录的所有者(user)
- 第二个 ec2-user:该目录的所属组(group)
16384:目录大小(字节)
- 这是文件系统分配给这个目录的空间,单位是字节。
- 对于目录来说,这不是里面文件的总大小,而是元数据大小。
Jun 13 09:53:最后修改时间
- 表示最后一次更改目录本身属性或结构(比如添加/删除文件)是在 6 月 13 日 09:53
结论:目录权限没有问题
二、上传其他文件
我上传了一个服务器上已经存在的文件multi_viewer.sh,奇怪,居然上传成功了:
testmanzhang@TestMandeMBP Downloads % scp -i ~/Documents/cert/qa.pem /Users/testmanzhang/Documents/test/2025_script/multi_viewer.sh ec2-user@55.86.xxx.33:/home/ec2-user/kvs-webrtc-sdk
multi_viewer.sh 100% 3524 52.4KB/s 00:00
- 检查 analyze_viewer_logs.sh 的文件名是否真的就是这么写的,看看有没有隐藏的特殊字符,比如中文空格、不可见字符(\r等)——这种字符看不见,但会导致远程文件名无法处理。
testmanzhang@TestMandeMBP 2025_script % ls -b /Users/testmanzhang/Documents/test/2025_script/analyzeviewerlogs.sh
/Users/testmanzhang/Documents/test/2025_script/analyzeviewerlogs.sh
结果是文件名完全干净,ls -b 没有显示任何特殊字符或转义符号(比如 \r、\n、空格、中文符号等),所以不是文件名导致的问题。
- 难道是我在ec2实例上没有提前创建analyze_viewer_logs.sh这个文件吗?于是我在实例上尝试创建这个文件analyze_viewer_logs.sh
touch analyze_viewer_logs.sh
创建失败,在失败提示中我看到了,关于磁盘的提示,于是我查看了磁盘信息:
df -h
我知道原因了,磁盘满了。。。
[ec2-user@ip-10-xx-0-xxx kvs-webrtc-sdk]$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 758M 70M 688M 10% /run
/dev/nvme0n1p1 50G 50G 20K 100% /
tmpfs 1.9G 0 1.9G 0% /tmp
/dev/nvme0n1p128 10M 1.3M 8.7M 13% /boot/efi
tmpfs 379M 4.0K 379M 1% /run/user/1000
真相终于浮出水面了,
/dev/nvme0n1p1 50G 50G 20K 100% /
根目录磁盘已满(100%),这正是 scp 上传失败,scp: dest open “…” Failure 的根本原因。
查了一下文件列表,10个日志文件,每个4G多:

最后删除了一个文件,再次上传,OK了。
386

被折叠的 条评论
为什么被折叠?



