一樣是 top 系列的 system monitor,支援 theme 卻又不像 glances 那麼吃運算資源:

預設畫面就可以看到整台機器大致狀況,甚至連處理器溫度和時脈都抓出來了,操作複雜了一點,但應該可以一次頂替掉不少監視工具。
軟體開發、伺服器和生活瑣事
一樣是 top 系列的 system monitor,支援 theme 卻又不像 glances 那麼吃運算資源:
預設畫面就可以看到整台機器大致狀況,甚至連處理器溫度和時脈都抓出來了,操作複雜了一點,但應該可以一次頂替掉不少監視工具。
Cloud-Init should allow you to modify password after first time login. But if SSH closed while changing password:
WARNING: Your password has expired. You must change your password now and login again! Changing password for ubuntu. Current password: passwd: Authentication token manipulation error passwd: password unchanged Connection to 192.168.0.102 closed.
There might be Cloud-Init issue in older version.
There is a workaround to by-pass force passwd. Find /boot/firmware/user-data
in the boot partition, then you will see options:
# On first boot, set the (default) ubuntu user's password to "ubuntu" and # expire user passwords chpasswd: expire: true list: - ubuntu:ubuntu
Update expire to false if you do not want to change password in first login. Or create your own username/password
in list
if expire
is not work.
Please notice that device is not safe using default user name and password. Change it after you connect to the device.
若不想開啟 teminal 而只想透過 SSH 擷取 remote server 的指令執行結果,可以直接這樣做:
ssh user@your.domain \ ls /var/run/reboot*
不過有些指令會使用 TTY 繪製圖形、顯示特定格式,這時就會出現錯誤訊息:
Error opening terminal: unknown.
例如我在 remote server 執行 watch
指令就會遇到這個錯誤。
已知可以透過參數 -t
來解決這個問題:
ssh -t user@your.domain \ watch -n 2 tail /var/log/kern.log
手上已有一台現成的 NAS,不過自己從頭跑一次才會知道細節。
其實使用 mdadm 建立磁碟陣列之前,並不一定需要先建立磁碟分割區,也可以直接使用整顆硬碟直接做。二種作法僅有些微差異,詳細內容可以參考 kernal.org 的討論。
假設除了基本硬碟 sda
以外,其他還有 sdb1
、sdc1
、sdd1
、sde1
、sdf1
、sdg1
共 6 個分割區要格式化為 ext4
,一個方法是 mkfs.ext4
一個一個硬碟慢慢來,另一個是寫 script 自動處理。以下範例是除了 sda
以外的所有分割區都格式化為 ext4
:
# 沒看懂前不要複製貼上,很危險 for DEV in $(ls sd*1 | grep -v sda); do yes y | sudo mkfs.ext4 $DEV done
東西準備好以後,就可以換 mdadm
上場了。
建立新的 RAID 用的是參數 --create
,指令大致如下:
mdadm --create /dev/md/md0 \ --level=6 \ --raid-devices=6 \ /dev/sd[bcdefg]1
md_home
等較為易懂的方式命名。--level
:要使用什麼類型的磁碟陣列。RAID 1 (mirror) 就給 --level=1
;RAID 6 就給 --level=6
--raid-devices
:這個磁碟陣列總用要用幾個 device 來建立。由於建立 RAID 時,不一定一次就要給足硬碟,所以這個參數要給正確。/dev/sdX
:要用來建立 RAID 的硬碟、或磁碟分割。把 device ID 當作參數一個一個補齊 (範例是偷懶的寫法)如果一切正常,就不會顯示錯誤訊息,且可以透過 /proc/mdstat
來檢視 RAID 建立的進度:
.... Continue creating array? y mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md/md-main started. $ cat /proc/mdstat Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md127 : active raid6 sdg1[5] sdf1[4] sde1[3] sdd1[2] sdc1[1] sdb1[0] 121024512 blocks super 1.2 level 6, 512k chunk, algorithm 2 [6/6] [UUUUUU] [=>...................] resync = 5.2% (1573464/30256128) finish=88.5min speed=5397K/sec unused devices: <none>
RAID 建立完成後,會在 /dev 變成一個 device,把 RAID 的資訊寫入 mdadm.conf 設定檔中:
mdadm --detail --scan >> /etc/mdadm/mdadm.conf
在 mount 之前,記得先用 mkfs 格式化。
一切都順利的話,可以在 /dev/disk/by-uuid 看到新的 UUID,接著就可以使用一般的方式去 fstab 設定自動掛載的資料了。
參考資料:A guide to mdadm – Linux Raid Wiki
步驟為:停止 RAID => 刪除 RAID。
使用 --stop
來停止、umount RAID md0
:
mdadm --stop /dev/md/md0
mdadm 會在硬碟中寫入 metadata 來識別資訊,可以使用 lsblk
看出來:
$ lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT NAME SIZE FSTYPE TYPE MOUNTPOINT loop0 60.7M squashfs loop /snap/lxd/21843 .... sda 238.5G disk ├─sda1 60G btrfs part /var/lib └─sda2 178.5G btrfs part sdb 28.9G linux_raid_member disk sdc 28.9G linux_raid_member disk sdd 28.9G linux_raid_member disk sde 28.9G linux_raid_member disk sdf 28.9G linux_raid_member disk sdg 28.9G linux_raid_member disk
接下來使用 --zero-superblock
來把 metadata 清乾淨:
mdadm --zero-superblock /dev/sd[bcdefg]1
最後再用 lsblk
確定一次,只要沒有出現 linux_raid_member
就可以放心將硬體資源挪作他用了。
用來和 APC UPS 溝通的工具是 apcupsd。另外一個工具是 upsmon (在 nut-client package 中)。
在 Ubuntu 下安裝:
sudo apt install apcupsd nut-client