[並行控制] Concurrency control 指南 – 樂觀鎖|悲觀鎖

Intro Concurrency control – 並行控制 分類上目前可分為三種: 樂觀鎖(Optimistic Locking) 悲觀鎖(Pessimistic Locking) 半樂觀鎖 (Semi-optimistic Locking) * Database – 資料庫管理系統 樂觀鎖 – OCC 樂觀並行控制 – Optimistic Concurrency Control,縮寫「OCC」 不利用內建鎖機制,而是利用應用層邏輯解決衝突 可透過讀取資料時分派一個版本或時間戳,通過校驗後寫入否則中斷(實作上可利用寫入連帶驗證版本達成) 適合交易之間資料競爭(data race)概率較小的應用情境 MySQL 實現範例 update DB.table set quantity = quantity -1 , version […]

[Windows] 系統重灌安裝指南 (支援Windows10 1809之後版本)

Intro 依據PC不同的開機磁區標準疊代,截至目前整理為以下: MBR: 最高支援FAT32檔案格式,製作安裝碟需要工具軟體,如UltraISO。 UEFI: 目前最高支援FAT32檔案格式,可以直接透過FAT32檔案格式複製所以檔案至安裝碟。 UEFI FAT32限制 因為UEFI目前僅支援到FAT32檔案格式,當ISO內容檔案超過4GB則需要特別處理,如切割檔案或者使用兩個磁區分別作為FAT32啟動並讀取另一個檔案格式磁碟內容。 以下介紹Windows的問題以及軟體工具推薦。 Windows 10 1809 之後版本 (2018年) Windows 10在1809版本後單檔已經超過4GB,即會面臨到需要處理UEFI FAT32限制問題。 Rufus 解決方案 Rufus (Github) 非常方便的開放原始碼軟體工具,有效解決UEFI FAT32問題。 – 若選擇小於4G以上的ISO檔,則僅能選擇MBR+FAT32模式(支援UEFI-CSM)。 – 若選擇超過4G以上的ISO檔,則可以選擇MBR(支援UEFI-CSM)或UEFI,檔案系統僅可選擇NTFS,實現由FAT32作為UEFI開機磁區並引導讀取NTFS磁區檔案。 – 超過4G以上的方式會需要BIOS先disable Secure Boot。

[Linux][Swap] 虛擬記憶體分頁Swap指南

Intro Wiki – 分頁Swap 常見的應用情境如開發環境要做套件安裝如PHP Composer,則可以利用暫時設定檔案Swap的方式解決。 基本用法 查看Swap狀態: swapon -s 卸載Swap: # Partition swapoff /dev/hdb2 # File swapoff /swapfile 透過Partition分割 透過檔案增加 主要透過swapon與swapoff指令來操作設定分頁,利用實體所在硬碟分割區中的檔案提供Swap。 先建立一個想要配給Swap容量的檔案於硬碟分割區,可以透過fallocate指令: fallocate -l 2G /swapfile 格式化此檔案為Swap file: chmod 600 /swapfile mkswap /swapfile swapon /swapfile 確認查看或設定自動掛載 完成後可以使用swapon -s指令確認查看,另外如要自動掛載則可以於/etc/fstab加入設定: /swapfile […]

[SFTP] Linux SFTP Server Guide – 建置SFTP服務

Intro Server使用工具:OpenSSH 設定SFTP服務主要會限制User僅限使用SFTP以及路徑限制。 安裝與設定 設定/etc/ssh/sshd_config: # 開啟internal-sftp Subsystem,將會限制僅使用SFTP而非SSH (反註解原本設定) Subsystem sftp internal-sftp 在設定Match條件,可以使用group為條件: Match group sftp_only ChrootDirectory /home/%u X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp 設定完成並重啟服務後,新增user至指定group(範例為sftp_only),並將ChrootDirectory(範例為/home/%u)目錄所有者設定為root,即能使user登入SFTP 應用上,可另外加設定Match條件,ChrootDirectory也可以設定固定為如/srv,使用者即不需要家目錄 進階 使用者與群組指令 # 新增群組 groupadd sftp_only # 新增使用者,如為固定ChrootDirectory則可不設家目錄-m useradd -s /bin/false -G sftp_only username […]

[Linux] SSH Manual – SSH 使用指南

HostKeyAlgorithms | KexAlgorithms | FingerprintHash Intro RFC4252 – The Secure Shell (SSH) Authentication Protocol SSH – OpenBSD manual page server ssh_config — OpenSSH SSH client configuration files ssh $ ssh user@host.com ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface] [-b bind_address] [-c cipher_spec] [-D […]

[OS] MacOS 基本使用架構與環境指南

Intro MacOS雖然是封閉系統,但這年頭應該很難不用到Mac筆電。 使用了Mac筆電意味著BIOS全部走Mac系列。 開機區 MacOS走UEFI,開機時按住指定鍵組: Option: 列出可開機磁區供選擇(如Bootcamp Windows),亦支援Windows開機區。 Command+R: 進入修復工具,包含磁碟工具程式與重新安裝OS X。 重灌 目前MacOS版本的修復工具已有線上OS直接下載安裝支援,連上網路即可只接重新安裝。全新安裝可先清除磁區再安裝。 Windows with MacOS Bootcamp 建議的安裝方式,在MacOS的Bootcamp(啟動切換輔助程式)工具程式分割與引導安裝Windows。目前版本上MacOS還是會每次下載驅動程式,其只需要分割出一個Partition供Windows使用即可。 觸控板捲軸反向問題 以下為原生Bootcamp解法,亦可裝第三方驅動程式解決 Bootcamp的Windows可以在右下角Bootcamp控制台做鍵盤與觸控板設定,另外觸控板反向驅動如果Windows設定內也沒有則可以透過修改登錄檔: 找到觸控板的裝置識別碼 (可以透過Windows觸控板設定更多內容 > 詳細資料 > 屬性:選裝置識別碼或路徑) 登錄檔修改(regedit)內搜尋或找到HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Enum \ HID \ {裝置識別碼} \ ??? […]

[Network] Fail2ban 指南 – 搭配 SSH/Nginx (DDoS、Request Limit)

Outline SSH 設定方針 Nginx 防禦設定方針 Access log Error log by limit_req_zone 進階 Fail2ban log 設定 Email Notifications Intro Fail2ban – Manuals 架構 Fail2ban 是依照設定檔執行過濾,原始設定檔路徑: /etc/fail2ban/jail.conf 如要修改新增可以複製建立成local的設定檔名稱,如有此檔會以此檔優先: /etc/fail2ban/jail.local /etc/fail2ban/jail.d/* Ubuntu Fail2ban 0.9 版本中可以找到預設的/etc/fail2ban/jail.d/defaults-debian.conf,內容是對[sshd]做enabled = true。 所以安裝好後預設即會開啟SSH保護(預設port為22) [過濾器名稱]會對應到/etc/fail2ban/filter.d/過濾器名稱.conf。 參數解析 官方文件 – Options […]