小花快跑 2024-04-16 15:42 采纳率: 20%
浏览 4
已结题

Uploading of file /opt/servers/java/man/ja to /opt/servers/java/man/ja failed!

在搭建Hadoop,JDK分发至slave1时,输入
scp -r /opt/servers/java/ slave1:/opt/servers/

报错
/opt/servers/java/man/ja is not a regular file
Uploading of file /opt/servers/java/man/ja to /opt/servers/java/man/ja failed!

  • 写回答

3条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-04-16 15:42
    关注

    引自免费微信小程序:皆我百晓生

    看起来你在尝试通过SSH使用scp命令将整个Java目录从主节点复制到名为slave1的从节点上。错误信息表明,在源路径/opt/servers/java/man/ja下的不是一个常规文件,而是可能是一个目录或者其他类型的文件。

    为了解决这个问题,你需要确认man/ja是否是一个文件夹。如果是文件夹,你不能直接使用scp命令将其作为一个单独的文件传输。你应该使用递归选项 -r 来递归地复制整个目录及其内容。但是这里有个小问题,你已经在命令行中包含了这个选项,所以问题可能在于其他地方。

    首先,检查/opt/servers/java/man/ja是否真的存在,并且是一个文件还是一个目录。可以使用以下命令在本地执行:

    ls -l /opt/servers/java/man/ja
    

    这会显示目标路径的确切类型。如果它是目录,那么你的命令应该是正确的。如果不是,你可能需要删除它或者处理掉这个异常文件,然后重新尝试复制。

    如果你确定man/ja是目录,但仍然遇到问题,可能是权限问题或者是SSH密钥验证失败。确保你已经正确配置了SSH密钥对,这样你就可以无密码登录到slave1。如果没有,你需要手动输入密码,或者设置密钥对自动认证。

    如果你在本地和远程服务器之间没有设置密钥对,你可以按照这些步骤操作:

    1. 在主节点(拥有Java目录的一方)生成SSH密钥:
      ssh-keygen -t rsa -b 4096
      
    2. 将公钥内容添加到slave1的 authorized_keys 文件中:
      cat ~/.ssh/id_rsa.pub | ssh user@slave1 'cat >> ~/.ssh/authorized_keys'
      
    3. 之后再试一次你的复制命令:
    scp -r /opt/servers/java/ user@slave1:/opt/servers/
    

    这里的user是你在slave1上的用户名。

    如果问题依然存在,请提供更多信息,例如/opt/servers/java/man/ja的实际内容以及相关的SSH日志,以便更准确地定位问题。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 4月25日
  • 已采纳回答 4月17日
  • 创建了问题 4月16日

悬赏问题

  • ¥15 想咨询点问题,与算法转换,负荷预测,数字孪生有关
  • ¥15 C#中的编译平台的区别影响
  • ¥15 软件供应链安全是跟可靠性有关还是跟安全性有关?
  • ¥15 电脑蓝屏logfilessrtsrttrail问题
  • ¥20 关于wordpress建站遇到的问题!(语言-php)(相关搜索:云服务器)
  • ¥15 【求职】怎么找到一个周围人素质都很高不会欺负他人,并且未来月薪能够达到一万以上(技术岗)的工作?希望可以收到写有具体,可靠,已经实践过了的路径的回答?
  • ¥15 Java+vue部署版本反编译
  • ¥100 对反编译和ai熟悉的开发者。
  • ¥15 带序列特征的多输出预测模型
  • ¥15 Python 如何安装 distutils模块