刪除TimeMachine備份

一般來說,空間足夠就不用特別管,但如果空間緊迫時,可能就會需要去處理。因為自己遇到了,就上網找看看有沒有人遇過,有找到這些方法,第一種方法是全部重來,第二種方法是用 MacOS 內建的 tmutil 指令。

參考資料:

使用 tmutil 這方法,需要先知道 TimeMachine 掛載到那邊,這時候需要先點選選單列裡的時光機圖示 (若沒有圖示,請到「設定」>「時光機」去勾選選單列中顯示「時光機」),然後選:進入「時光機」

此時,MacOS 會去掛載,然後就可以在 /Volumes 資料夾裡找到「時光機」備份的路徑,時光機備份是以年月日來作為目錄名稱,很容易就可以識別。

要刪除的時候,需要指定完整的路徑,以我的環境為例,就是

sudo tmutil delete /Volumes/「時光機」備份/Backups.backupdb/XXX的\ MacBook\ Pro/xxxxxx

刪除時,有幾點要注意:

  1. 刪除有可能需要不少時間,要視時光機備份儲存媒體的速度而定。像我用的 NAS 比較慢,就會花不少時間。
  2. 刪除有機率導致整個時光機備份都毀掉,我自己就遇到一次,還好是沒關係。

補充一個:https://github.com/emcrisostomo/Time-Machine-Cleanup

關掉 Windows 2019 裡 Internet Explorer 的安全設定

我只是想下載微軟自家的 Edge,想不到 Internet Explorer 一直在那邊該該叫,好像在跟使用者抗議說不應該換掉我的感覺。因為一直跳對話視窗出來說要列入白名單,這實在是太浪費時間,上網找了一下看怎麼關掉。

方法還蠻簡單的:Disable Internet Explorer Enhanced Security Configuration in Windows Server 2019 | by Sumit | Tensult Blogs | Medium

步驟如下

  1. 從開始,找到 Server Manager。
  2. Server Manager 的左邊選擇 Local Server。
  3. 從右邊可以看到「IE Enhanced Security Configuration」,點選這個,此時會跳出對話視窗。
  4. 把對話視窗裡的兩個選項都改為 Off 以後就可以了。

jc – 將指令輸出結果轉為JSON格式

分享 jc 這指令,裝了以後,可以把一些指令的輸出轉為 json,之後就可以搭配 jq 來查詢 json 裡的資料。

安裝

RHEL8 的安裝,需要直接從 jc 的 github 頁面下載 linux binary 。

Debian/Ubuntu 可以使用 apt-get install jc

ArchLinux 可以用 pacman -S jc

MacOS 可以用 brew install jc

使用

例如

 非 jq 作法用 jq
掛載點mount | awk '{print $1;}'mount | jc --mount | jq -r ".[].filesystem"
digdig example.com | awk '/ANSWER\ SECTION/ { getline; print $5; }'dig example.com | jc --dig | jq -r '.[].answer[].data'

除了 mountdig 之外,也可以解析蠻多指令的,這部份可以參照 github 網頁

參考資料:

gcin出現Cannot open /usr/share/gcin/table/.kbm

某天點了 gcin 的 tray icon,按了裡面的「切到舊的注音鍵盤」,之後,切換到 gcin,就會出現下面的訊息

Cannot open /usr/share/gcin/table/.kbm

這超奇怪,放了好幾天,終於受不了。嘗試了以下幾個作法:

  1. 試著移除 gcin,再重新安裝 gcin,不行。
  2. 試著去複製以前的 gcin 設定,不行。

後來才在 gcin 討論區裡找到這篇:Ubuntu 14.04 gcin 安裝啟動後竟抓不到注音符號表??—->X@.kbm

只要執行以下指令,把 ~/.gcin/config 下的 phonetic-keyboard* 刪除即可

rm ~/.gcin/config/phonetic-keyboard*

果然解鈴還須繫鈴人。

Ubuntu 21.10 的 Chromium

許久沒用 Chromium,這次安裝發現很不一樣。

  1. snap package:雖然還是用 apt 來安裝,但實際上已經是 snap package 。
  2. Profile 路徑:因為使用 snap package,所以 Profile 路徑已經不是 ~/.config/chromium/Default,而是在 ~/snap/chromium/common/chromium/Default 。如果要從非 snap package 的 Google chrome 遷移到 Chromium,就是把 ~/.config/google-chrome/Default 複製到 ~/snap/chromium/common/chromium/Default 就可以。如果不確定 Profile 路徑在哪兒,可以在 Chromium 的網址欄輸入 chrome://version 就可以看到。

參考資料

OneDrive 持續顯示載入中

前幾天開始,跟 OneDrive 相關的部份都怪怪的,於是昨天重新開機,想說應該就好了吧。但事與願違,OneDrive 持續的顯示載入中,到後來就不理我了,游標移到圖示上,顯示 MacOS 的彩虹轉圈圈。

試著砍 Process,也重開機了幾次,都不行,後來找到這篇:修正 Mac 上的 OneDrive 同步處理問題 。裏面提到好幾種方法。我是使用了裏面重置 OneDrive 的方法。

OneDrive 應用程式目錄下藏有一個重製的命令:

  1. 先用 kill 或是程序管理員之類的把 OneDrive 結束掉。
  2. 開啟 Finder,從上方的「前往」選「應用程式」
  3. 以滑鼠右鍵按一下 [OneDrive],然後選取 [顯示套件內容]。沒有滑鼠,可以按住 ctrl ,再點一下觸碰板,這樣就等於是按下滑鼠右鍵。
  4. 選 Contents > Resources
  5. 找到 ResetOneDriveApp.command ,點選執行。

執行的時候,會跳出一個終端機視窗顯示他執行的指令,執行完,關閉即可。

再重新執行 OneDrive 來設定即可,選擇位置時,記得選取前一個 OneDrive 同步處理的位置。 這樣一來,如果您的檔案沒有變更就不會再次下載。

HAProxy的VirtualHost

Apache / Nginx 很常用到的情境就是同個 Port 會有不同的站台,這時會使用到 VirtualHost 。

那 HAProxy 可以這樣做嗎?利用 Google 找了一下,發現是可以,主要是使用 ACL 的設定。

關鍵的設定是寫在 frontend 裡 (設定摘錄自 HAProxy – route by domain name | Sean McGary)

frontend http-in
        bind *:80

        # Define hosts
        acl host_bacon req.hdr(host) -i ilovebacon.com
        acl host_milkshakes req.hdr(host) -i bobsmilkshakes.com

        ## figure out which one to use
        use_backend bacon_cluster if host_bacon
        use_backend milshake_cluster if host_milkshakes

利用 acl + hdr(host) 來判斷 HTTP header 裡的 Host ,接著再使用 use_backend … if … 來決定使用哪一個 backend。

查到以後,我試了好一陣子,都試不出來,後來才搞懂,當使用這個來判斷 header 時,mode 必須要改為 http,如果 mode 是 tcp,那麼是沒作用的。同理,當要用到 https 上時,也會不行,因為連線的內容被加密,HAProxy 無法解讀內容,也就無法得知 header。

HAProxy 的 backend 裡可以改寫 request 的 header,方法如下

backend ocp-apps-http
    mode http
    http-request del-header Host
    http-request set-header Host petclinic.apps.example.com
    server node1 petclinic.apps.example.com:80

透過這個,就可以達到類似 reverse proxy 的效果。

今天試下來,大致對 Apache / Nginx / HAProxy 的定位有了一定程度的了解。HAProxy 有兩個 mode:tcp / http,tcp 適用於 SSL pass-through 跟純 TCP 傳輸的情況,這時是由 backend 來處理 SSL 憑證;http 可以視為跟 Apache / Nginx 相似的情況,也可以掛 SSL 憑證。

簡單的說,Apache / Nginx 並不能完全取代 HAProxy,反之亦然。

自製GameToGo

GameToGo 是個很方便的產品,讓你可以在 MBP 上使用 Windows 10 ,又可以省掉許多麻煩。

本來是打算買一個的,後來上網找了一下,找到這篇:在 Mac 下,如何安裝 BootCamp WIN10 到外接硬碟(製作自己的 GameToGo) ,看完,評估了好一會兒之後,就決定來照著做一次。手邊雖然有外接裝置,但沒有夠快的,所以就下單買了一個外接 SSD。

文章裡前面提到 MacOS 的磁碟分割軟體不好用,建議用其他的磁碟分割軟體來做。自己試了一次,發現真的不行。後來我用的方法是這樣:

  1. 使用命令列工具 diskutil 來做分割:diskutil partitionDisk disk2 GPT exFAT windows 250Gi exFAT data R
  2. 使用 iBoysoft NTFS for Mac 來將分割區格式化為 NTFS

解說一下 diskutil 那行:

  • partitionDisk: 表示要做磁碟分割
  • disk2: 是指對第幾個磁碟,這可以用 diskutil list 來看。
  • GPT:表示是做 GPT 分割,這同時也會建出一個 EFI 分割區。
  • exFAT windows 250Gi:exFAT 是分割區格式,windows 是分割區的名稱,250Gi 是分割區大小,這可以用 %,例如 50%
  • exFAT data R :exFAT 是分割區格式,data 是分割區的名稱,R 表示剩下的空間都分配給這個分割區。

分割完以後,後續的基本上就照做就可以。安裝完畢,視窗並不會關閉,就只是一片黑,這時候只要關閉視窗即可。

然後重新開機 MacOS,等到重開機的時候,會遇到安全性問題,這部份就要照 MacBook 用隨身碟執行 Windows 10:Windows To Go、WinToUSB 裡的「安全性設定不允許此 Mac 使用外部啟用磁碟」這一節去做。

  • command + R 進入復原模式,但不要選畫面上的項目,而是要選上方選單裡的「開機安全性工具程式」,然後選「無安全性」跟「允許從外部或可卸除式媒體開機」。按 X 關閉後,選左上方的「啟用磁碟」,選到要開機的磁碟,按「重新開機」按鈕即可。
  • 之後有插上外接裝置要重新開機時,要按住 Options ,再選磁碟。
  • 準備好 USB 有線滑鼠跟鍵盤,以備不時之需。

這時候就可以繼續安裝 Windows 的步驟了,最後再裝上驅動程式即可。