by Rain Chu | 11 月 1, 2024 | Docker , MIS
如果遇到別人包裝好的 docker (99%都是),常會遇到沒有 root 密碼的情形,這時候有幾個解決方法,列舉如下
直接使用 root 的權限進入系統
docker exec -u 0 -it mycontainer bash
或是下面的指令也可以
docker exec -u root -it --workdir / <containerName> bash
修改 root 密碼
安裝 sudo
apt-get install sudo
usermod -aG sudo dev
參考資料
https://stackoverflow.com/questions/28721699/root-password-inside-a-docker-container
by Rain Chu | 4 月 24, 2024 | Linux , Raspberry Pi , Ubuntu
wpa_cli
是一個用於與 wpa_supplicant
交互的命令行界面工具,當然也支持在 command line 下直接使用命令控制 WIFI,可以用來管理無線網絡接口的設定和運行狀態。這個工具非常強大,支持多種操作,如掃描無線網絡、連接到網絡、變更設定等,而我都用python 透過 wpa_cli 來控制 WIFI。
首先掃描無線網路
打開終端,並且記得要用 root 權限來執行 wpa_cli
sudo wpa_cli -i wlan1 scan
sleep 5 # 給予一些時間來完成掃描
sudo wpa_cli -i wlan1 scan_results
回應如下圖
加一個網路配置
利用 ssid 和 paswword 來連線到一個已知的無線網路上,可以將下面的指令編寫成 wpa_cli_add_network.sh ,並且執行她,也可以直接使用,執行後取得的 network id 通常是一個 int 的數字,把她記起來,之後就可以透過這個 network id 來連接網路,和斷開網路
# 添加新的網絡配置
network_id=$(wpa_cli -i wlan1 add_network | awk '{print $NF}')
# 設置SSID和密碼
wpa_cli -i wlan1 set_network $network_id ssid '"你的SSID"'
wpa_cli -i wlan1 set_network $network_id psk '"你的密碼"'
# 啟用該網絡
wpa_cli -i wlan1 enable_network $network_id
# 保存配置
wpa_cli -i wlan1 save_config
連接網路以及斷開網路
# 重新連線
wpa_cli -i wlan1 reconnect
#斷開連線
wpa_cli -i wlan1 disconnect
刪除網路配置
wpa_cli -i wlan1 remove_network $network_id
檢查連線是否存在
得到的輸出通常如下
其中,檢查是否有連線成功,可以看 wpa_state 是否為 COMPLETED
檢查已經存在的網路設定
sudo wpa_cli -i wlan1 list_networks
輸出如下
可以用 flags CURRENT 來檢查現在是連線到那一個 network ,也可以取得 network id ,並且用他來連線
by Rain Chu | 10 月 31, 2023 | MariaDB , SQL , 資料庫
1. 瞭解 MariaDB Master to Master 備援的重要性
Master to Master (M2M) 備援在 MariaDB 中是非常重要的一種設定。它允許兩個 MariaDB 伺服器雙向地同步資料,確保其中一台伺服器發生問題時,另一台可以立即接手,確保資料的持續可用性。對於那些尋求高可用性和資料完整性的應用程式來說,這是一個非常有用的設定。
2. Windows 環境下的 MariaDB 安裝步驟
要在 Windows 上設定 M2M,首先需要正確地安裝 MariaDB。下載適用於 Windows 的 MariaDB 版本並執行安裝程式。選擇適當的安裝選項,例如伺服器位置、資料庫大小等。並且確保在安裝過程中設定一個強大的 root 密碼,以確保資料庫的安全。
目前MariaDB長期支援版本為 MariaDB 10.11 版本,11版本則是有最佳化過的,兩者都可以用,可以依照自己的需求做選擇
假設兩台主機如下
Hostname: Master01 ,IP:192.168.0.10
Hostname: Master02 ,IP:192.168.0.11
3. 配置 Master to Master 備援
設定 M2M 備援涉及許多步驟:
修改 my.ini
(Windows) 或 my.cnf(Linux)
設定檔,設定 server-id 和 log-bin 參數
可以在開始功能表中找到my.ini,或是到你安裝時候填寫的資料庫路徑中可以看到my.ini檔案
每個 master 伺服器應該有一個唯一的 server-id,所以要在my.ini設定檔案中加入 server-id、log-bin、log-basename
第一台主機 id 設定為 1
[mysqld]
datadir=C:/Mariadb
port=3306
innodb_buffer_pool_size=2559M
character-set-server=utf8mb4
server-id = 1
log-bin
log-basename = master01
第二台主機 id 設定為 2
[mysqld]
datadir=C:/Mariadb
port=3306
innodb_buffer_pool_size=2559M
character-set-server=utf8mb4
server-id = 2
log-bin
log-basename = master02
在每台伺服器上建立用於備援的使用者帳號,並授予該使用者適當的權限。
在第一台主機 master01 上,新增一個使用者,讓 slave 主機可以透過192.168.0.X的網段連進來
grant replication slave on *.* to 'replica_user'@192.168.0.% identified by '123456';
flush privileges;
在第二台主機 master02 上,新增一個使用者,並且要讓 master01 主機的 IP 可以連進來
grant replication slave on *.* to 'replica_user'@192.168.0.% identified by '123456';
flush privileges;
設定 replication filters,確保只有需要的資料被同步。
啟動二進制日誌(binary logging)並確認每台伺服器都可以互相連接。
4. 測試 Master to Master 備援
在完成設定後,你應該測試 M2M 備援以確保它正常工作。首先,在一台伺服器上添加或修改一些資料,然後檢查另一台伺服器是否已同步這些變更。同樣地,從另一台伺服器修改資料並檢查第一台伺服器。此過程應確保資料在兩個伺服器之間正確同步。
在 Master01 中,查詢 File 和 Position,並且把值記錄下來,等等要填到 master02
在 master02 中,把 master01 的數值填入,並且建立連結
change master to master_host='192.168.0.10',
-> master_user='replica_user',
-> master_password='123456',
-> master_log_file='master01-bin.000001',
-> master_log_pos=5099;
start slave;
接下來檢查是否有設定成功
接下來回到 master01 去設定跟 master02 的連接
change master to master_host='192.168.0.11',
-> master_user='replica_user',
-> master_password='123456',
-> master_log_file='master02-bin.000002',
-> master_log_pos=5079;
start slave;
5. 維護和監控 Master to Master 備援
一旦 M2M 備援設定完畢並經過測試,你需要持續監控以確保它正常運作。使用如 MariaDB 的 SHOW SLAVE STATUS
命令來檢查備援的狀態。此外,考慮使用監控工具,如 Nagios 或 Zabbix,來自動檢查伺服器的健康狀態。
相關文章
近期留言