各位前辈大家好,新年快乐今天我在使用PuTTY移动公司系统备份资料的时候,手残key错我原本应该要key这样mv /usr/local/tomcat8/logs//home/kuser/logs_bak/logs_20250124
但不小心key成这样子mv /usr/local/tomcat8/ /home/kuser/logs_bak/logs_20250124前面的路径资料夹少了logs

一开始还没有发现,所以先是照原本的步骤[root@localhost kuser]# cd/usr/local/tomcat8bash: cd: /usr/local/tomcat8: 没有此一档案或目录[root@localhost kuser]# mkdir logsmkdir: 无法建立目录"logs":档案已存在系统显示档案已存在,当时没有多想所以有把继续操作把旧的logs_bak给删除的步骤[root@localhost kuser]# cd /home/kuser/logs_bak[root@localhost logs_bak]# ls[root@localhost logs_bak]# rm - r -f 旧的资料夹[root@localhost kuser]# cd

接着就开始输入指令重新启动系统[root@localhost ~]# cd /usr/local/tomcat8系统就跑出bash: cd: /usr/local/tomcat8: 没有此一档案或目录然后我再继续尝试[root@localhost ~]# sh /usr/local/tomcat8/bin/startup.sh一样就跳出sh: /usr/local/tomcat8/bin/startup.sh: 没有此一档案或目录这个时候才发现我自己最前面移动资料夹的时候,漏了一层

因此想说把他移回去[root@localhost ~]# cd /usr[root@localhost usr]# ls[root@localhost usr]# cd /usr/local[root@localhost local]# cd /usr/local/tomcat8bash: cd: /usr/local/tomcat8: 没有此一档案或目录[root@localhost local]# cd /usr/local[root@localhost local]# ls[root@localhost local]# mkdir tomcat8[root@localhost local]# ls[root@localhost local]# cd /usr/local/tomcat8[root@localhost local]# ls[root@localhost local]# mkdir logs

接着意识到startup.sh是在bin资料夹里面于是我又这样操作[root@localhost usr]# cd /usr/local[root@localhost local]# cd /usr/local/tomcat8[root@localhost tomcat8]# cd /usr/local/tomcat8/bin/startup.sh果不其然的看到这行代码sh: usr/local/tomcat8/bin/staartup.sh: 没有此一档案或目录

所以就开始各资料夹ls翻找最后在[root@localhost kuser]# cd /home/kuser/logs_bak[root@localhost logs_bak]# cd /home/kuser/logs_bak/logs_20250124[root@localhost logs_bak]# ls找到bin资料夹

--20250125 14:30更新--下面是我目前资料夹的分层状况

由于 cd /usr/local/tomcat8/里面只有 bin/ logs/ ,没有 conf/ lib/ temp/等资料夹且 cd /usr/local/tomcat8/logs 里面有多了一层logs资料夹

这样我是否是要这样操作才能顺利把资料夹与档案归位?1.mv /home/kuser/logs_bak/logs_20250124//usr/local/tomcat8把 conf/、lib/、webapps/、logs/、temp/ 等资料夹搬回usr/local/tomcat8资料夹内2.mv /usr/local/tomcat8/logs/logs/ /usr/local/tomcat8

1 个回答

0

zivzhong

iT邦研究生 4 级 ‧ 2025-01-25 03:59:44

最佳解答

参考 Chatgpt 回答:
根据您的描述,整个 tomcat8 目录其实已被「搬家」到 /home/kuser/logs_bak/logs_日期 里面了,导致原本在 /usr/local/ 底下的 tomcat8 不见。只要尚未删除到原本 tomcat8 里的档案(尤其是 bin、conf、lib 等资料夹),通常都能直接「搬回」原位即可。以下提供几个排查与恢复的建议步骤:


1. 确认 Tomcat8 目录是否完整

  1. 进入您刚找到的 logs_20250124 资料夹

    cd /home/kuser/logs_bak/logs_20250124
    ls
    

    应该会看到原先 tomcat8 内熟悉的结构:

    • bin/(含 startup.sh、shutdown.sh 等)、
    • conf/lib/webapps/logs/temp/
      等资料夹。

    若这些都还在,就代表您「移动」的不只是 logs,而是整个 tomcat8 目录。

  2. 检查是否有重要档案缺失

    • 若您之前在 logs_bak 里面做了 rm -r -f 旧的资料夹 等指令,请确认是否有误删到 binconf 等资料夹。
    • 如果误删了关键档案(如 startup.shcatalina.sh 等),那可能就需要从备份或重新安装 Tomcat 来恢复。

2. 将被误移走的 Tomcat8 目录搬回原位

假设您确定 logs_20250124 资料夹里面包含原本的所有 Tomcat 档案(bin/conf/ 等),只要把它「搬回」 /usr/local/tomcat8 即可。步骤如下:

  1. 先把您临时建立的空 tomcat8 资料夹删除
    (因为您前面为了尝试修复已经 mkdir /usr/local/tomcat8 以及 mkdir logs 等)

    rm -rf /usr/local/tomcat8
    

    注意:此步骤会删掉您目前 /usr/local/tomcat8 下所有内容,如果那里真的只是空资料夹就没问题。)

  2. 将误搬走的目录搬回

    mv /home/kuser/logs_bak/logs_20250124 /usr/local/tomcat8
    

    搬完后,再到 /usr/local/tomcat8 底下看一下结构是否完整:

    cd /usr/local/tomcat8
    ls
    

    如果能看到 bin/ conf/ lib/ logs/ webapps/ 等就代表已经回复正常。

  3. 尝试启动 Tomcat

    sh /usr/local/tomcat8/bin/startup.sh
    

    或是进入 bin/ 目录后执行:

    cd /usr/local/tomcat8/bin
    sh startup.sh
    

    若能正常显示 Tomcat started. 或类似讯息,就代表修复成功。


3. 若关键档案已误删

如果您在执行 rm -r -f 时,不小心删除了 Tomcat 的关键档案或资料夹(binconf 之类),那就可能要考虑:

  1. 从备份中恢复
    若公司有定期备份 Tomcat 安装资料夹或整台系统快照,可以从备份中恢复 /usr/local/tomcat8

  2. 重新安装或重新下载 Tomcat

    • 若 Tomcat 并无特殊客製化设定,您可以直接重新下载相同版本,解压缩到 /usr/local/tomcat8,再把您需要的设定档(server.xmltomcat-users.xml 等)或 webapps 里的专案放回去。
  3. 检查是否还保留在某个路径下

    • 例如您只删除了 logs_bak 下的一些资料夹,但并未把 bin 等档案删掉,那可能还留在 logs_20250124 里的子资料夹中。请再多检查一下目录结构。

4. 后续建议

  1. 谨慎使用 rm -r -f

    • 移动档案或资料夹前,先确认路径是否正确,避免类似情况再次发生。
    • 建议可以用 mv -i 增加提示,或在删除前使用 ls 验证目录内容。
  2. 建立良好的备份机制

    • 在改动关键资料夹(如 Tomcat、系统设定档)前,先行备份或做好版本控制。
  3. 使用绝对路径或相对路径时保持警觉

    • 例如本次意外就因为 /usr/local/tomcat8/logs/usr/local/tomcat8/ 的差别导致。
  4. 分层管理 log 和应用程式

    • 可以将 Tomcat 的 logs 放到 /var/log/tomcat 或其他独立路径,减少对主程式目录的误动作风险。

总结

最主要的解法就是把您「误搬走」的 tomcat8 目录搬回 /usr/local/tomcat8。您可以:

  1. 确认 /home/kuser/logs_bak/logs_20250124 是否包含 Tomcat 的 bin/conf/lib/webapps/ 等资料夹。
  2. 删除 您临时新建的空 /usr/local/tomcat8 目录。
  3. /home/kuser/logs_bak/logs_20250124 移回 /usr/local/tomcat8
  4. 测试启动,若档案皆齐全,就能恢复正常。否则,就可能需要从备份或重新安装/部署 Tomcat。

若有更多疑问或进一步问题,欢迎再提问,祝您顺利将环境恢复!


  • 2

kevin32

iT邦新手 5 级 ‧
2025-01-25 10:57:22

感谢大大的协助指导。

经检查后我的状况是这样
cd /home/kuser/logs_bak/logs_20250124
ls
看到的是conf/、lib/、webapps/、logs/、temp/ 等资料夹。

cd /usr/local/tomcat8/
ls
bin/ logs/
cd /usr/local/tomcat8/bin
ls
有看到startup.sh、shutdown.sh等资料夹
cd /usr/local/tomcat8/logs
ls
catalina.out logs/
cd /usr/local/tomcat8/logs/logs
ls
catlina.日期.log、catalina.out、host-manager.日期.log、
localhost.日期log、localhost_access_log.日期.txt、
manager.日期.log

目前感觉有问题的地方应该是

  1. 我并没有把
    在cd /home/kuser/logs_bak/logs_20250124里面的
    conf/、lib/、webapps/、logs/、temp/ 等资料夹 跟着bin资料夹一起搬回
    cd /usr/local/tomcat8
  2. 我在
    cd /usr/local/tomocat8/logs里面多建了一层logs

这样我是否就只需要执行
1.
mv /home/kuser/logs_bak/logs_20250124//usr/local/tomcat8
把 conf/、lib/、webapps/、logs/、temp/ 等资料夹
搬回usr/local/tomcat8资料夹内
2.
mv /usr/local/tomcat8/logs/logs/ /usr/local/tomcat8

修改

kevin32

iT邦新手 5 级 ‧
2025-01-25 11:32:16

补充
执行sh /usr/local/tomcat8/bin/startup.sh的时候
是有成功看到
tomcat started 的讯息

修改