各位前輩大家好,新年快樂
今天我在使用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/tomcat8
bash: cd: /usr/local/tomcat8: 沒有此一檔案或目錄
[root@localhost kuser]# mkdir logs
mkdir: 無法建立目錄"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/tomcat8
bash: 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
參考 Chatgpt 回答:
根據您的描述,整個 tomcat8 目錄其實已被「搬家」到 /home/kuser/logs_bak/logs_日期
裡面了,導致原本在 /usr/local/
底下的 tomcat8 不見。只要尚未刪除到原本 tomcat8 裡的檔案(尤其是 bin、conf、lib 等資料夾),通常都能直接「搬回」原位即可。以下提供幾個排查與恢復的建議步驟:
進入您剛找到的 logs_20250124 資料夾
cd /home/kuser/logs_bak/logs_20250124
ls
應該會看到原先 tomcat8 內熟悉的結構:
bin/
(含 startup.sh、shutdown.sh 等)、conf/
、lib/
、webapps/
、logs/
、temp/
若這些都還在,就代表您「移動」的不只是 logs,而是整個 tomcat8 目錄。
檢查是否有重要檔案缺失
logs_bak
裡面做了 rm -r -f 舊的資料夾
等指令,請確認是否有誤刪到 bin
、conf
等資料夾。startup.sh
、catalina.sh
等),那可能就需要從備份或重新安裝 Tomcat 來恢復。假設您確定 logs_20250124
資料夾裡面包含原本的所有 Tomcat 檔案(bin/
、conf/
等),只要把它「搬回」 /usr/local/tomcat8
即可。步驟如下:
先把您臨時建立的空 tomcat8 資料夾刪除
(因為您前面為了嘗試修復已經 mkdir /usr/local/tomcat8
以及 mkdir logs
等)
rm -rf /usr/local/tomcat8
(注意:此步驟會刪掉您目前 /usr/local/tomcat8
下所有內容,如果那裡真的只是空資料夾就沒問題。)
將誤搬走的目錄搬回
mv /home/kuser/logs_bak/logs_20250124 /usr/local/tomcat8
搬完後,再到 /usr/local/tomcat8
底下看一下結構是否完整:
cd /usr/local/tomcat8
ls
如果能看到 bin/ conf/ lib/ logs/ webapps/
等就代表已經回復正常。
嘗試啟動 Tomcat
sh /usr/local/tomcat8/bin/startup.sh
或是進入 bin/
目錄後執行:
cd /usr/local/tomcat8/bin
sh startup.sh
若能正常顯示 Tomcat started.
或類似訊息,就代表修復成功。
如果您在執行 rm -r -f
時,不小心刪除了 Tomcat 的關鍵檔案或資料夾(bin
、conf
之類),那就可能要考慮:
從備份中恢復
若公司有定期備份 Tomcat 安裝資料夾或整台系統快照,可以從備份中恢復 /usr/local/tomcat8
。
重新安裝或重新下載 Tomcat
/usr/local/tomcat8
,再把您需要的設定檔(server.xml
、tomcat-users.xml
等)或 webapps
裡的專案放回去。檢查是否還保留在某個路徑下
logs_bak
下的一些資料夾,但並未把 bin
等檔案刪掉,那可能還留在 logs_20250124
裡的子資料夾中。請再多檢查一下目錄結構。謹慎使用 rm -r -f
mv -i
增加提示,或在刪除前使用 ls
驗證目錄內容。建立良好的備份機制
使用絕對路徑或相對路徑時保持警覺
/usr/local/tomcat8/logs
與 /usr/local/tomcat8/
的差別導致。分層管理 log 和應用程式
/var/log/tomcat
或其他獨立路徑,減少對主程式目錄的誤動作風險。最主要的解法就是把您「誤搬走」的 tomcat8 目錄搬回 /usr/local/tomcat8
。您可以:
/home/kuser/logs_bak/logs_20250124
是否包含 Tomcat 的 bin/
、conf/
、lib/
、webapps/
等資料夾。/usr/local/tomcat8
目錄。/home/kuser/logs_bak/logs_20250124
移回 /usr/local/tomcat8
。若有更多疑問或進一步問題,歡迎再提問,祝您順利將環境恢復!
感謝大大的協助指導。
經檢查後我的狀況是這樣
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.
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
補充
執行sh /usr/local/tomcat8/bin/startup.sh的時候
是有成功看到
tomcat started 的訊息