Tmux 出現 protocol version mismatch 解法

Debian / Ubuntu Linux 做 Package Upgrade 後, Tmux 很常遇到下述問題:

  1. $ tmux attach # 出現下述錯誤訊息

    protocol version mismatch (client 7, server 6)

  2. 於是就無法進入 tmux 了~

解法很簡單: 只要把 tmux server 的 process pid 全部 kill 掉, 重新開始就可以正常使用.

但是如果是 tmux 明明還在某些無法停止的事情, 但是需要進去又進不去的狀況, 要如何先暫時解決?

閱讀全文〈Tmux 出現 protocol version mismatch 解法〉

Ubuntu Linux 桌面送通知訊息

Ubuntu Linux 桌面環境(使用 Unity、Gnome3), 程式要送通知訊息, 可以用下述方式傳送: (apt-get install notify-osd)

  • $ notify-send "hello world"
  • $ notify-send Title "hello world"
  • $ notify-send Date "`date`"
  • $ notify-send "Message Title" "The message body is shown here" -i /usr/share/pixmaps/sm.xpm -t 5000
  • $ notify-send Title "`tail /var/log/syslog`"
  • $ tail -n0 -f /var/log/syslog | while read line; do notify-send "System Message" "$line"; done
  • $ notify-send -i face-wink "Hello! January" # notify-send -i <icon> <Message>
  • $ notify-send  -t 0 "Bringing down the system" # 會彈出需要確認、取消的視窗
  • $ DISPLAY=:0.0 /usr/bin/notify-send "TITLE" "MESSAGE" # 加入 crontab 需要另外顯示
  • $ notify-send -u critical -i "notification-message-IM" 'Boss !!' 'Am done with the execution' # 緊急
  • $ command && notify-send # 程式完成時,呼叫 notify-send 傳送
  • $ notify-send --help # 可以查看更多參數

註: 通知訊息於 Unity 會從上角出現, Gnome3 會從正下方出現 通知訊息.

除了提醒外,想要有出現視窗確認的,可以使用 zenity,如下述:

  • $ zenity --info --text "STRING"
  • 可於 .bashrc 加入此 function,就可以 ls | notify "done" 完成通知
    function notify() {
        zenity --info --text "$1"
    }

將 GitLab 架設 於 Ubuntu 12.04 (Precise)

關於 GitLab 的文章、說明, 之前的文章已經有寫過, 在此就不再詳述, 詳細可見此篇: 將 GitLab 架設 於 Debian Wheezy

註: 關於 GitLab 安裝詳細說明、Debug 等訊息, 也都於上述文章記錄, 在此就不再多加撰寫.

閱讀全文〈將 GitLab 架設 於 Ubuntu 12.04 (Precise)〉

將 GitLab 架設 於 Debian Wheezy

GitLab 是 Ruby on Rails 開發的應用程式, 操作使用非常類似 GitHub, 可以通過 Web 存取 公開 或 私人的 Project.

GitLab 介紹、測試

閱讀全文〈將 GitLab 架設 於 Debian Wheezy〉

Gnome3 休眠回復後不會提示輸入密碼 修正(Ubuntu 13.10)

Ubuntu 13.10 的 Unity 中文輸入法常常切換不過去, 於是直接換 Gnome3 來使用.

Gnome3 使用後, 發現另外一個問題是, 時間過久、休眠都不會出現密碼提示, 所以臨時要離開就很麻煩, 於是想辦法解決.(需要手動輸入 Lock 鎖定螢幕的命令)

閱讀全文〈Gnome3 休眠回復後不會提示輸入密碼 修正(Ubuntu 13.10)〉

Linux dd 遇到 容量不足 的 resize 解法

SD 記憶卡的品牌不同, 容量多少也會有些差異, 於 dd 要將容量小的塞到大的沒問題, 但是大的塞到小的就肯定行不通, 此篇的作法可能會有資料流失的風險, 使用起來請自行注意~

  • 註1: 我是因為記憶卡後面的空間大多都沒用到(16G 大概有 12G 都還沒用到, 所以後面遺失的空間不會有差別)
  • 註2: 這個只適用在容量差異不大的狀況 (16G vs 16G), 容量差異太大, resize 也沒有任何意義~
  • 註3: 除了 resize 外的解法, 如果有 dd 前的原始 SD Card, 可以考慮把作業系統整個 tar 過去 或 cp -a 來製作.

先講講 dd 備份 和 還原, 下面再來紀錄容量不足的解法.

  • 備份: sudo dd bs=4M if=/dev/sdc | gzip > /tmp/backup.gz # bs=4M 跑起來比較快, 另外硬碟容量不夠用, 所以備份順便丟入壓縮.
  • 還原: sudo gzip -dc /tmp/backup.gz | dd of=/dev/sdc # 這邊 bs=4M 不要加, 容量不夠的話, 會遺失更多資料. (註: bs(預設 4k) 不加, 會跑很久)
  • 相關參考: 使用 dd 來 備份 / 還原 SD 卡的作業系統

閱讀全文〈Linux dd 遇到 容量不足 的 resize 解法〉

MySQL Replication 遇到 Got fatal error 1236 from master 修復

MySQL Replication 遇到 error 1236 就有點麻煩了~ 通常都是 binlog 出問題造成的~ (Master 或 Slave 的 binlog 壞掉都有可能造成此錯誤)

通常遇到這個狀況, 都是 Slave 的 binlog 壞掉, 就 Slave DB 的資料重倒來解決, 但是此次遇到是 Master 的 binlog 壞掉, 就有點苦了~

錯誤訊息如下:

  • Last_IO_Errno: 1236
  • Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'Client requested master to start replication from impossible position; the first event 'mysql-bin.003583' at 45997491, the last event read from './mysql-bin.003583' at 4, the last byte read from './mysql-bin.003583' at 4.'

閱讀全文〈MySQL Replication 遇到 Got fatal error 1236 from master 修復〉

Ubuntu 作業系統 線上導覽操作介紹 - 2013

Ubuntu Linux 要推薦別人使用, 一般人還是會先後退三步~

Ubuntu online tour 做的還不錯, 可以點選、開啟應用程式, 只不過都只能點選, 無法真的連線操作使用, 但是常用的工具 - 瀏覽器、收信、Word、Excel、影音播放都有 Demo 可以看看.

  • 註1: 目前此介紹頁只有 英文、簡體中文版.
  • 註2: Ubuntu Linux 的安裝光碟、USB 預設拿來開機後, 可以更進一步的直接試用 (真的可以操作、連線使用)

之後就拿這頁來去讓新手試玩看看(讓他知道會用到的軟體都已經內建了), 再來引導他換系統. XD

AWK 列出 第一個分隔後 的所有資料

Linux 經常使用 AWK 來依照某個條件來垂直分割字串, ex:

  • echo "a b c d" | awk '{print $2}' # 印出 b
  • echo "a b c d" | awk -F' ' '{print $2}' # 印出 b, -F: 依照一個空白分隔切割字串

但是, 上述範例 'a b c d' 想要依照空白分隔, 但是要列出 'b c d', 要怎麼做呢?

閱讀全文〈AWK 列出 第一個分隔後 的所有資料〉