SSH 連不上的原因有很多種:
連接埠沒開、帳號密碼或權限問題、磁碟已滿
前幾天就遇到磁碟已滿,導致 GCP VM 無法 SSH 連線的問題。
du -chd 1 | sort -h
這個指令可以統計目前目錄下各項目占用的大小,並依大小排序。
處理邏輯
1. 將這台 VM 的開機磁碟(boot disk)卸離

2. 開一台新的 VM(或其他可用的 VM 都行),把這顆硬碟掛載到該 VM 上

3. 進入這台新的 VM,將硬碟的分割區掛載到 Linux 目錄
# sudo lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
...
sda 8:0 0 30G 0 disk
├─sda1 8:1 0 29.9G 0 part /
...
sdb 8:0 0 10G 0 disk
├─sdb1 8:1 0 9.9G 0 part /
...
# sudo mkdir /mnt/sdb1
# sudo mount /dev/sdb1 /mnt/sdb1
4. 這時就可以開始整理硬碟了,整理好之後將硬碟卸離
5. 將舊硬碟從新的 VM 卸離,再掛回原本那台 VM 作為開機磁碟
# sudo umount -l /mnt/sdb1

6. 順利開機
開機之後如果還想擴充空間,可以參考:
如何在 Google Cloud Platform (GCP) 增加既有的硬碟空間,解決容量不足的問題
延伸閱讀
- 【監控】Prometheus + Grafana 監控 Docker 服務與 Slack 告警:磁碟滿導致連不上之前就能預警,這篇用 Prometheus 與 Grafana 監控主機並發 Slack 告警
- 【Linux】檢查硬碟使用空間:同樣是磁碟空間不足,這篇是 MySQL binlog 過大造成的另一種案例
No comments yet.