[PHP] 處理二進制資料 – Binary Data Pack/Unpack

Intro PHP支援二進制的資料處理,應用上在跟低階語言(如C語言)做資料介接就幫上許多。 PHP函式 pack() 封裝 Data to BIN unpack 分析 BIN to Data $bin = pack(“Sa3”, 50, ‘abc’); file_put_contents(‘data.bin’, $bin); $bin = file_get_contents(‘data.bin’); $data = unpack(“SShort/a3Char3”, $bin); print_r($data); Array ( [Short] => 50 [Char[3]] => abc )

[Linux] LVM (Logical Volume Manager) 教學指南

Intro Logical Volume Manager (Linux) 雖然個人不喜用LVM來管理硬碟,但遇上使用LVM的機器還是得適應。 PV基本操作 搜尋PV硬碟 pvscan $ pvscan 顯示PV狀態 pvdisplay $ pvdisplay 建立PV pvcreate $ pvcreate /dev/sdb $ pvcreate /dev/sdb{1,2,3} 移除PV pvremove $ pvremove /dev/sdb VG基本操作 vgscan 搜尋VG $ vgscan vgdisplay 顯示系統VG狀態 $ vgdisplay vgcreate 建立VG $ […]

[VM] Proxmox (PVE) 指南

Intro Proxmox Concepts USB安裝 Storage – 硬碟&OS ISO Datacenter > Storage可以指定內容包括Disk image、ISO image複合選擇,如要新增Storage則可以自行在系統分割mount出一個資料夾給PVE新增: Datacenter > Storage > Add > Directory 系統mount範例:mkfs.ext4 /dev/sdb /mnt/hdd; mount /dev/sdb /mnt/hdd; (建議設fstab) ID: 自行取名,如hdd Directory: 對應系統資料夾位置,如/mnt/hdd Content: 套用的內容,如用於存放ISO或者Disk image PVE官方文件 – Storage: Directory 新增上傳OS ISO […]

[Linux] SSH Config 連線設定檔指南

Intro SSH的個人連線設定檔使用~/.ssh/config管理較為方便且是針對Host個別套用(如Git)。 設定 檔案:~/.ssh/config 使用:針對設定的Host別名快速連線:ssh host-alias-name 設定檔規範 Host alias-name HostName server.name Port port-number IdentitiesOnly yes IdentityFile ~/.ssh/private_ssh_file User username-on-remote-machine 其他選項 # Keeping SSH Session Alive Host * ServerAliveInterval 240 ServerAliveCountMax 2 設定範例 Host * ServerAliveInterval 240 ServerAliveCountMax 2 Host server.com […]

[FW] Intel 內建 RAID 磁碟陣列卡問題整理

Intro Intel內建的RAID卡問題整理。 問題集 軟體RAID? 是用硬體方式串接,但可能涉及軟體RAID操作: 需要在OS running才能執行如RAID 1 rebuild動作 OS識別磁碟介面時,其實看到的是原始陣列。如Windows安裝時正常識別、Ubuntu則是識別出原始陣列(如RAID-1看到實體兩顆,Server版標出各為Raid-1,Desktop版識別不明Raid) 可靠性(HA) 測試在Raid 1 Rebuild時,在OS執行時抽出任一顆硬碟(無論Master或Slave),OS直接損壞。待測完好Raid-1下抽換(理論上不能損壞否則沒意義) RAID-1 Rebuild時間相當長,且僅能在OS running才能執行 發生過RAID卡故障問題(硬碟正常),待測移植至相同Intel RAID卡是否可以沿用。

[Linux] SSH PEM 免密碼登入指南 (Public Key Authentication)

Intro X.509標準下我們可以製作PEM私鑰,用以登入放置公鑰的伺服器。 製作流程 1. 當前帳號執行Key產生器 $ ssh-keygen 產生於~/.ssh下: id_rsa.pub // 公開金鑰(public key) id_rsa // 私密金鑰(private key) 2. Public Key放至登入伺服器上帳號的~/.ssh/authorized_keys: ssh user@remotehost ‘mkdir -p ~/.ssh;cat >> ~/.ssh/authorized_keys’ < ~/.ssh/id_rsa.pub or ssh-copy-id -i ~/.ssh/id_rsa.pub user@remotehost 進階用法 其他參數產生鑰匙用法: ssh-keygen -t rsa -b 4096 […]

[Windows] 關閉 Windows 10 自動更新

Intro Windows 10 更新太XX 注意! Windows 10自動更新的機制不斷再更新,本教學也會持續更新。 第三方關閉自動更新軟體:StopUpdates10 關閉服務(Service) 服務(Services) > Windows Update > 關閉停用 + 復原不動作0重試 服務(Services) > Windows Update Medic Service > 關閉停用 Service服務有權限鎖,以系統管理員執行REG add “HKLM\SYSTEM\CurrentControlSet\Services\WaaSMedicSvc” /v “Start” /t REG_DWORD /d “4” /f 設定自動更新模式 可修改為停用或提醒下載模式 執行gpedit.msc: 電腦設定 > […]

[Network] Traceroute & Tracert/Tracepath 工具指南

Intro Traceroute – Wikipedia 可顯示封包在IP網路經過的路由器的IP位址。 Windwos平台指令:tracert Linux平台指令:traceroute or tracepath traceroute(8) — Linux manual page Linux 可以額外安裝 traceroute 套件,與內建 tracert 不相同 $ traceroute www.google.com.tw # TCP on port 443 $ traceroute -T -p 443 www.google.com.tw MTR MTR(My traceroute,原名Matt’s traceroute)網路診斷工具包含traceroute與ping的功能,並支援TCP & UDP封包 […]

[Windows] 環境變數設定(Environment Variables) – 如php, mysql, cygwin cmd.

Intro 一般應用在使用如Xampp的php想要有alias指令,或像Cygwin執行檔環境變數問題。 Windows10環境變數設定選單: “My Computer” -> Properties -> Advanced -> Environment Variables 或 “Control Panel\System and Security\System” -> Advanced system settings -> Advanced -> Environment Variables 效益上就是要達到SET PATH=%PATH%;C:\your,差異在設定方式會是永久保存。 環境變數設定 可以先看到分User variables與System variables,一般我們只需要異動使用者的。 變數Path Path變數提供類似Command Alias功能, 實作上例如安裝Xampp後期待可以透過cmd輸入php,mysql等alias執行相依程式。 以PHP安裝在D:\xampp\php\目錄舉例,在環境變數設定介面選擇Path的變數進行編輯,可以新增一行: D:\xampp\php 儲存後,可以在cmd下測試輸入php -v是否有成功。