阿舍要把 /var/log/nginx 資料夾下的所有的 access 日誌檔複製到別的資料做處理,因此,阿舍就用下面這一行指令來複製檔案,結果,就出現 cannot stat 的問題,一開始,阿舍一度以為是 cp 指令不能用 access* 的方式複製檔案哩 !
$ sudo cp /var/log/nginx/access* ./
cp: cannot stat ‘/var/log/nginx/access*’: No such file or directory
但是,阿舍用同樣的方式,就是檔名加星號的方式來複製別的資料夾的指定檔名的檔案,都沒有這個問題,於是,阿舍就切到 /var/log/nginx 資料夾來看看,就發現這個資料夾的檔案的擁有者是 www-data 及 adm 群組,而且,只有擁有者有讀寫權限,群組只有讀的權限,其他人則是完全沒有權限哩 !
$ sudo ls -l /var/log/nginx
total 14768
-rw-r----- 1 www-data adm 5704708 Feb 28 05:51 access.log
-rw-r----- 1 www-data adm 3789101 Feb 22 06:35 access.log.1
-rw-r----- 1 www-data adm 506444 Feb 16 06:46 access.log.2.gz
阿舍查了一下 cp 指令會出現 cannot sate 的原因,一般來說,除了真的沒有檔案之外,最有可能的原因就是路徑和權限的問題,在某些情況下,在使用 cp 指令時,使用相對路徑或是 ~ 路徑來指定檔案會讓 shell 程式找不到檔案,因此,改用絕對路徑就可以解決。
正常情況,cp 指令應該是可以執行這幾種複製的 ... |
另外一個權限問題就更容易明白了,因為權限的問題造成 shell 程式根本就 "看不到" 那個檔案,因此,就當然會出現 No such file or directory 哩 ! 而阿舍遇到的,就是這個情形,因此,阿舍就調一下使用者的權限,就解決這個問題了哩 !
所以,如果有幸在檔案都存在的情況下還遇到這個 cannot stat No such file or directory 訊息的話,就可以改用絕對路徑或檢查一下檔案的權限設定看看囉 ! ... 供參囉 ! ...
推薦閱讀
- 問題沒解決嗎? 更多的 Ubuntu 教學在 這裡
- Prompt Injection: 提示詞注入安全漏洞
- 二款 Mac 無痛安裝的 Stable Diffusion 軟體
- 用 AI 寫部落格文章好不好 ?
- 沒有免費的 Midjourney 和 Colab 又不想花錢怎麼辦 ?
- 不學 Prompt 技巧也能善用 ChatGPT 的簡單方法
- 企業 AI 應用:不只是聊天機器人
- Automatic 比 Automatic1111 更好用 ? 都是 Stable Diffusion WebUI
- Stable Diffusion 的 /describe 圖生文功能
- AI 畫出讓人可怖的美圖 !
有疑問? 問題還是沒解決嗎? 歡迎下方留言提問和討論 😁
沒有留言 :
張貼留言
歡迎留言提問和討論 .... 😁