当我尝试使用 scp 复制文件(无论朝哪个方向)时,没有显示任何错误(尽管返回的$?
代码是 1),我所能看到的只是远程计算机在我登录时正常打印的消息(它是从启动脚本打印的)。没有打印任何其他内容,文件也没有被复制。
本地机器是 OpenSUSE(从未出现过任何问题),远程机器是 Centos 7,全新安装。
在 CentOS 机器上执行完全相同的命令,无论朝哪个方向,都可以正常工作。就像这样简单scp FILENAME sektor@remote-machine:
。
有人知道如何至少调试这个或我可以做任何其他检查来了解发生了什么吗?
我已经尝试过了-v
,它没有打印任何异常。从请求密码的那一刻起,它就打印了(我更改了机器名称和 IP):
debug1: Next authentication method: password
sektor@remote-machine's password:
debug1: Authentication succeeded (password).
Authenticated to remote-machine ([1.2.3.4]:22).
debug1: channel 0: new [client-session]
debug1: Requesting [email protected]
debug1: Entering interactive session.
debug1: pledge: network
debug1: client_input_global_request: rtype [email protected] want_reply 0
debug1: Sending environment.
debug1: Sending env LANG = en_US.UTF-8
debug1: Sending command: scp -v -f FILENAME
Sink: Welcome to remote-machine, sektor. Put on the helmet, just in case.
Welcome to remote-machine, sektor. Put on the helmet, just in case.
Sending file modes: C0664 0 FILENAME
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: channel 0: free: client-session, nchannels 1
debug1: fd 0 clearing O_NONBLOCK
Transferred: sent 2576, received 2612 bytes, in 0.1 seconds
Bytes per second: sent 17661.7, received 17908.5
debug1: Exit status 1
日志表明好像发生了一些复制,但是文件仍然没有被复制。
编辑:有趣的是,我在那里重新安装了另一个系统(这次是 Oracle Linux),在复制所有启动文件后,我又遇到了同样的问题。但我找到了一个“解决方案”(尽管我称之为变通方法):我删除了 .bashrc 下标的最后一行,正如您可能猜到的那样,它正在执行:
echo "Welcome to $HOSTNAME, $LOGNAME. Put on the helmet, just in case"
删除后,scp 会正确复制这些文件。不过,我仍然很好奇,真正的根源是什么,因为我在 OpenSuSE 系统 (15.1) 中有此行,而 scp 始终正常工作。