The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

批次將所有 Java 原始碼檔案快速轉成 UTF-8 編碼的方法

最近公司接到一個老舊 Java 專案的升級改版案,由於原始碼全部都採用 Big5 編碼,導致在 Visual Studio Code 裡面無法成功編譯,雖然看了 Troubleshooting Guide for Encoding Issues 文件,也成功研究出維持 Big5 編碼也能持續開發的解決方案,但其實最好的解決方法,還是把所有 Java 原始碼變更為 UTF-8 才是王道。今天我就來分享幾個不同的方法,幫助你快速將專案的所有原始碼從 Big5 轉換成 UTF-8 字集編碼!

... 繼續閱讀 ...

使用 Azure CLI 快速建立 Azure 虛擬機器 (Virtual machines)

有時候我們想要在 Azure 很快速的建立一台 VM (虛擬機器) 來用,除了透過 Azure Portal 之外,我想最快速的方式,不外乎是透過 Azure CLI 命令列工具了,只要把之前筆記的 CLI 命令找出來,複製貼上就馬上有一台 VM 可以用。這篇文章我打算分享幾個我之前整理的 Azure CLI 筆記,幫助我日後可以更快速的找到命令。

... 繼續閱讀 ...

使用 Multipass 與 cloud-init 快速建立 MicroK8s 叢集所需的虛擬機器 (VMs)

週日玩了一下 cloud-init 工具,我發現文件看官方文件不是那麼好上手,但是官網首頁的影片卻一看就知道怎麼設定。簡單來說,cloud-init 專門用來幫你初始化 Linux 的出廠設定,不但支援大多數 Linux 散佈版本 (distributions),也支援大多數雲端平台業者,也可以讓你在地端的 Bare-Metal 主機進行初始化,可謂是業界標準的初始化 VM 方法。我發現 Multipass 也有支援 cloud-init 設定,所以這篇文章我來大致說明一下設定的過程與套用的方式。

... 繼續閱讀 ...

利用 Multipass 在區域網路架設一套 MicroK8s 叢集環境

我之前有篇 使用 MicroK8s 架設 Kubernetes 叢集的完整過程解析 文章,講解了完整的 MicroK8s 體驗的過程。雖然你可以在 Windows 上輕鬆的架設出一套 Kubernetes 叢集,但是由於 MicroK8s 的底層使用到了 Multipass 工具來建立虛擬機器(VM),事實上透過 Multipass 建立的 VM 在每次重開機的時候都會變更 IP 地址,因此只要 VM 重開機,基本上叢集就會壞掉,因為所有 Worker Nodes 將無法找到 Control Plane 的 IP 地址。這篇文章我來說說這個問題的解決方法!

... 繼續閱讀 ...

如何在 Ubuntu Linux 解除安裝 .NET SDK 或 Runtime 任意版本

雖然 .NET 有個 Uninstall Tool 可以用來解除安裝任何 .NET / .NET Core 版本,但是目前依然不支援 Linux 版本,可能是 Linux 生態實在是太複雜了,所以一直沒有提供好用簡便的反安裝工具。今天這篇文章我將分享幾個好用的命令,幫助你快速解除安裝現有的 .NET SDK 與 Runtime 版本。

... 繼續閱讀 ...

OKD (OpenShift Origin) 3.11 與 Ubuntu 18.04 LTS 建置筆記

最近因為有客戶的 Infra 環境採用 OKD (The Community Distribution of Kubernetes that powers Red Hat OpenShift) 平台,為了能夠在我公司建立一套跟客戶一樣的環境,所以就自行架設了一套來用,大約花了兩天時間研究,雖然建置的過程不太順利,但發現越玩越熟就越覺得好用。還好我已經有 Kubernetes 的底子在,研究 OKD 其實觸類旁通,雖然有卡關,但還好都有解決。本篇文章就分享我的 OKD 3.11 建置過程與心得!

... 繼續閱讀 ...

Linux 的 /tmp 目錄變成 1MB 的 overflow 檔案系統如何解決

今天有台 Linux 系統的硬碟滿了,導致系統發生異常,將空間清出之後,大部分的程式都可以正常運作,但是一個用 PHP 寫的網站卻出了點小問題,所有功能都能運作,MySQL 資料庫也能跑,但只要上傳超過 1MB 的檔案卻怎樣也上傳不成功 (UPLOAD_ERR_CANT_WRITE),查了好久才終於發現,原來是系統的 /tmp 暫存目錄只剩下 1MB 而已,而且檔案系統為沒聽過的 overflow 這個名稱,這篇文章用來解釋這個檔案系統的由來,以及解決方法。

... 繼續閱讀 ...

如何重設 Ubuntu、CentOS、Debian、FreeBSD 的 root 密碼

前陣子有客戶因為接手一個燙手山芋的案子,突然要負責管理十多台伺服器,其中包括 FreeBSD, Debian, CentOS 等各式不同的作業系統,最詭異的地方是,他們交接伺服器的時候原廠商竟然不願意提供 root 密碼給他們,客戶就在一個伺服器完全被隔離的情況下完成了交接程序,拿到的就是十多台還正常運作的實體機器,但登入不了,也因此客戶特別聘請我到現場緊急救援,希望能幫他們完成重設 root 密碼,如此特殊的需求,我還真第一次遇到,在此特別公開在不同 Unix-like 作業系統之間 root 密碼重設的標準作業流程!

... 繼續閱讀 ...

如何在 Windows 與 Linux 變更 Ethernet 網卡速度與雙工設定

最近買了一台國產的網管型 Switch ( 不是 D-Link ),使用與測試了幾個月都沒啥問題,由於我們於 IDC 的機房臨時需要一台網管型 Switch 支援,所以公司的 IT 人員就帶進機房安裝,結果卻發現我們機房裡有兩台比較老的伺服器網路線接上了 Switch 卻沒燈號反應,從伺服器上也是未連接網路線的狀態,還好這鬼打牆的問題我之前有聽人家說過,但沒有親身遇到過,人說夜路走多總會遇到鬼,這狀況還是讓我遇到了,最後是變更網卡速度與雙工設定才解決。

... 繼續閱讀 ...

透過 OpenSSH 使用 SFTP 登入時將帳戶設為 chroot 的方法 (Linux)

當使用 WinSCPFileZilla Client 使用 SFTP 協定登入 OpenSSH 伺服器時,在預設的情況下使用者可以自由的在檔案系統間遊走,當我們基於安全的理由希望透過 SFTP 登入伺服器後能透過 chroot() 的方法將使用者 關在(chroot) 特定目錄下,讓他不能跑到其他目錄瀏覽資料,透過一些簡單的設定就能達到,以下就是設定的方式。

... 繼續閱讀 ...

在 Hyper-V 製作 Ubuntu 10.04.1 LTS 基礎磁碟標準作業流程

這幾年越來越少用 Linux 但說實在話在未來也很難不碰到它,因為 Linux 在某些領域的確非常優秀,我以前在玩 Linux 的時候就是愛調一大堆有的沒的設定,盡量讓壹台 Linux 伺服器的能力發揮到極致,但缺點是系統太過複雜,自己雖然很滿意,但這樣壹台複雜的 Linux 伺服器只要發生問題除錯就痛苦了,最後反而累到自己。然而這幾年由於虛擬化技術的進步,我已經盡量把 Linux 負責的工作徹底單純化,如果有不同的功能我就架設不同的 Linux 伺服器,這樣一來雖然我手邊還會有幾台 Linux 要管理 (以前可能只用壹台就能搞定),但架構與設定上的確簡單多了。

... 繼續閱讀 ...