Debian/Ubuntu 的 update-rc.d 使用教學

Debian

update-rc.d 是在 DebianUbuntu 內用來管理 /etc/init.d 目錄內的 scripts 工具。不管是 Nginx 或 Mysql 等相關服務,都可以在 /etc/init.d 目錄內找到相對應的 script 檔案,隨便打開一個 script 檔案就可以看到標頭有固定的格式寫法:

1
2
3
4
5
6
7
8
9
### BEGIN INIT INFO
# Provides:          gorush
# Required-Start:    $syslog $network
# Required-Stop:     $syslog $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts the gorush web server
# Description:       starts gorush using start-stop-daemon
### END INIT INFO
[Read More]

用 drone-line 架設 Line webhook 及發送訊息

之前寫了一篇教學『用 Docker 發送 Line 訊息』,但是前提是你要先學會 Docker,對於完全沒有 Docker 經驗的初學者來說,學習起來相當不容易,所以我將 drone-line 編譯出 Linux, Mac OS X 或 Windows 都可以執行的 Binary 檔案,方便初學者可以直接下載執行檔,在任何環境都可以運作,請直接參考 v1.4.0 Release 頁面,如果還是想用 Docker 版本的,可以直接參考 Docker Hub 上的 drone-line repo,底下會教大家如何執行 Line webhook service 及發送訊息,尚未申請 Line Developer 帳號,請直接參考前一篇教學

[Read More]

OpenSSH 安全性漏洞 CVE-2016-0777 and CVE-2016-0778

openssh

OpenSSH 今日公佈 Client Bug 漏洞 CVE-2016-0777 and CVE-2016-0778,發生原因是 SSH Clinet 跟 Server 溝通時,新功能 roaming 造成傳輸過程被惡意程式破解,影響的 OpenSSH 版本為 5.4 - 7.1. 大家快看看自己是否為這版本區間。此問題會發生在 SSH Client 而不是 Server 端,所以 Linux FreeBSDMacOS 都需要升級 OpenSSH,如果你是在 Windows 用 Putty 則不受影響。

[Read More]

快樂學習 Linux 指令懶人包

github-logo

以前在推廣 Linux 的時候,大家最不喜歡 Command Line 介面,都是被 Windows 慣壞了,相信剛接觸 Linux 最痛苦的就是學習指令,新人學習指令遇到困難,上網發問,一定會看到有人回答說,怎麼不看 man page,但是每個指令的 man page 都非常的長,連我自己看到都直接關掉,何況是剛入門 Linux 的新人。現在 Github 上面有看到這專案 tldr,這專案把每個指令文件簡單化,讓剛學習 Linux 的新人可以快速上手,像是底下 find 指令

[Read More]

Alpine Linux 挑戰最小 docker image OS

Screen Shot 2015-12-27 at 9.17.22 AM

Alpine Linux 是一套極小安全又簡單的作業系統,在現今 Docker Images 裡面,最主要推崇的就是 Ubuntu 作業系統,但是令人詬病的是 Ubuntu 還是不夠小,今天看到 Alpine 在 docker 內的大小大約是 5 MB,看到這 size 大小,相信是令人很震撼,之前要是看到這 size 大概只有 OpenWRT 編譯 BusyBox 才有可能的大小,但是 OpenWRT 最主要還是缺乏很多目前 popular 的套件,所以 Alpine 幫你解決這問題,提供大量的 Packages 讓開發者使用。底下就可以看出 Alpine 擊敗目前盛行的 docker images 大小比較圖。

[Read More]

Docker 救了 Debian SSH terminal

上週在處理實體機器時,不小心下了底下指令 $ dpkg --purge --force-all zlib1g 造成系統所有相關指令都不能使用,像是 ssh, scp, fetch, wget 等跟網路相關的指令都會出現底下錯誤訊息 curl: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory 本來想說可以透過指令將檔案抓回來,放回去就可以恢復了,但是所有指令幾乎都不能用,連 git 也出現該錯誤訊息,這時候最怕 terminal 斷線,如果斷線了,就要到機房去處理問題了。最後想到用 Docker 來處理,簡單幾個步驟就可以將檔案抓回來了 # 抓 debian images $ docker pull debian:7 # 進入 docker $ docker run -t -i debian:7 /bin/bash # 從 docker 複製檔案到 home 目錄,其中 e1bf3950b16c docker id $ docker cp e1bf3950b16c:/lib/x86_64-linux-gnu /home/ 完成後,在去 x86_64-linux-gnu 找到 libz. [Read More]

Ruby Deploy With Capistrano 碰到 SSH Connection Closed

CapistranoLogo

Ruby 開發環境最常用的 Deploy 工具就是 Capistrano,讓開發者可以快速部署程式碼,在部署進行中,由於大量的 js 及 css 需要處理,所以花最長的時間就是 assets:precompile,執行 cap deploy 就會發現卡在底下錯誤訊息

** [whenever:update_crontab] exception while rolling back: Net::SSH::Disconnect, connection closed by remote host *** [deploy:update_code] rolling back * executing “rm -rf /home/deploy/nami/releases/20150317135422; true” servers: [“xxxxx.tw”] ** [deploy:update_code] exception while rolling back: Net::SSH::Disconnect, connection closed by remote host

[Read More]

解決在 Ubuntu 系統下 Chrome 瀏覽器亂碼

Screenshot from 2014-12-10 22:15:27

UbuntuChrome 瀏覽器一陣子後,突然發現全部的中文介面都變成亂碼,就像上面這張截圖一樣,除了網頁可以正常顯示外,其他像是 Tab 或書籤都變成亂碼,在百度找到這篇解答,解決方式很容易,但是就是不知道原因為什麼這樣改就可以,底下紀錄如何解決此問題。

[Read More]

CodeIgniter 搭配 Homestead 開發環境

CodeIgniter

HomesteadLaravel Framework 所提供出來的懶人安裝環境,大幅降低學習 Laravel 的門檻,大家都知道初學一套 Framework 最重要的是快速寫出 Hello world,如果初學者卡在環境都架設不來,那就更加不用接著學習 MVC 架構了,所以 Laravel 提供了 Homestead,不管你是用 Linux 或 Windows 都可以快速的把開發環境架設起來。相信很多人也從 CodeIgniter 跳往 Laravel 框架了,但是舊的網站還是要維護阿,所以這次透過 Laravel Homestead 一起來把 CodeIgniter 開發環境無痛架設起來,省去新人安裝 Nginx + PHP + MySQL 的時間。

[Read More]