Skip to main content

Linux server

📄️ A small issue with curl related to using different versions of curl between IDE and local terminal

前陣子因為需要檢查域名設定,測試過程中發現在 pycharm 運行 curl 指令,運行結果跟 iterm2 的運行結果不同,以下是 demo 指令,最後使用which curl發現兩邊curl有差別,進一步檢查發現兩者檔案 size 也有差,使用的相關套件也有差。心得:基本上連自己電腦環境都可能用髒了,之後排查類似的bug順序會先檢查彼此使用指令的版本,確認沒差太多,在開始往其他方向排查。

📄️ Common folder and their uses in Linux

介紹linux系統規劃各資料夾要放置哪需檔案,透過本篇,你可以知道假如你要找你的mysql資料夾(透過yum安裝),你應該去哪找.1. 用 yum 安裝 mysql 之後,請問他的數據位置會在哪個資料夾? 設定檔會在哪?數據文件會放在/var/lib 底下,以 mariadb 為例,到/var/lib/mysql 底下會看到各數據庫的數據(每個 database 一個 folder)還有 crash recovery 時用於儲存 metadata 的 log 檔案等,這是因為/var 規劃是放數據文件跟日誌文件.設定檔在/etc 底下,依據系統,centos 可能在/etc/my.cnf 或/etc/mysql/my.cnf,不過基本上都會在/etc,因為/etc 規劃放系統或應用程序的 config 的,注意 my.cnf 會用!includedir /etc/my.cnf.d 去進一步包設定檔,需要 cnf 為結尾.

📄️ Use systemctl to manage service properly and safely

主要邏輯就是會先:`建立系統帳號` -> `限制資料夾權限及owner` -> `建立service設定檔` -> `透過systemctl託管該service`.另外,之前在設定service時候都是設定`Type=simple`,不過自從在rsync設定daemon服務踢到鐵板就知道必須了解差異,如果程式執行的模式是父process產生子process之後就關閉父process,例如:`rsync` daemon程式會產生子process作為主要執行process(同理還有nginx這類服務),就必須用`Type=forking`,否則`systemctl`會把它當作主程式退出,之後就會hang住然後回報failure狀態. `rsync server`的service設定檔如下...