Linux initrd 的開機程式啟動管理

現在的時代都使用 Systemd 來管理開機、甚至所有程式的執行 等等,取代掉傳統 init 的 System V

現在 Debian、Ubuntu Linux 雖然使用 systemd,但是還是有讓以前的操作習慣相容,維持著 rc0.d ~ rc6.d、rc.local 等等可以使用,有時候用舊方法來查詢還蠻方 便的,話說,今天要使用時,發現都快忘光了,來簡單寫點紀錄當回憶,雖然已經都用不太到了~

閱讀全文〈Linux initrd 的開機程式啟動管理〉

Linode Email 無法寄送的解法

Linode 於 2019/12/5 以後開得新帳號(原因:CAN-SPAM Act),連到外部 SMTP Port 預設都被擋掉,以至於全部 Connection timed out。

新開機器可以直接 telnet 測試看看:

$ telnet gmail-smtp-in.l.google.com 25
Trying 2404:6800:4008:c03::1b…
Trying 74.125.203.26…
telnet: Unable to connect to remote host: Connection timed out

正常狀況

$ telnet gmail-smtp-in.l.google.com 25
Trying 74.125.203.26…
Connected to gmail-smtp-in.l.google.com.
Escape character is '^]'.
220 mx.google.com ESMTP k2si12268129pld.364 - gsmtp

於 Postfix 的 /var/log/mail.log 會看到下述訊息:

Apr 29 12:47:24 localhost postfix/smtp[18520]: connect to gmail-smtp-in.l.google.com[74.125.203.27]:25: Connection timed out
Apr 29 12:47:24 localhost postfix/smtp[18521]: connect to gmail-smtp-in.l.google.com[108.177.97.27]:25: Connection timed out
Apr 29 12:47:24 localhost postfix/smtp[18523]: connect to gmail-smtp-in.l.google.com[64.233.189.26]:25: Connection timed out
Apr 29 12:47:54 localhost postfix/smtp[18523]: connect to alt1.gmail-smtp-in.l.google.com[108.177.9.27]:25: Connection timed out
Apr 29 12:48:24 localhost postfix/smtp[18523]: connect to alt2.gmail-smtp-in.l.google.com[209.85.234.26]:25: Connection timed out
Apr 29 12:48:54 localhost postfix/smtp[18522]: connect to alt3.gmail-smtp-in.l.google.com[142.250.11.27]:25: Connection timed out Apr 29 12:49:24 localhost postfix/smtp[18520]: connect to alt4.gmail-smtp-in.l.google.com[142.250.12.27]:25: Connection timed out

想要開通 Email 的 SMTP Port 需要做些設定,然後在於後台開 Ticket 申請。

閱讀全文〈Linode Email 無法寄送的解法〉

MySQL Log 所有 SQL 語法

MySQL 最常使用的是 Log Slow Query,但是除了 Slow Query 外,還有情況是要抓不知哪來的 SQL 語法,或者要查是哪些語法一起來造成 Lock 等等的問題,所以想要知道 MySQL 到底都接收到哪些 SQL Query?

要怎麼將所有的 SQL 語法都記錄下來呢?

閱讀全文〈MySQL Log 所有 SQL 語法〉

Linux 如何離開、關閉 VIM

於 Linux 最常使用的編輯器就是 VI、VIM,但是之前有流傳著,非常多人在 Stack Overflow 裡面發問,而問題就是如何離開 VIM。

  • 如果是不小心進入,想離開 VIM 的:ESC 多按幾下,然後輸入 :q! ENTER 即可

下述摘錄自此篇:vi - How do I exit the Vim editor? - Stack Overflow

  • :q to quit (short for :quit)
  • :q! to quit without saving (short for :quit!)
  • :wq to write and quit
  • :wq! to write and quit even if file has only read permission (if file does not have write permission: force write)
  • 😡 to write and quit (similar to :wq, but only write if there are changes)
  • :exit to write and exit (same as :x)
  • :qa to quit all (short for :quitall)
  • :cq to quit without saving and make Vim return non-zero error (i.e. exit with error)

閱讀全文〈Linux 如何離開、關閉 VIM〉

Debian Linux 系統升級 PHP 需要注意的事項 - 2020

Debian Linux 由 jessie 一路升級到 buster,PHP 也由 7.1、7.2 升級到 7.3,有哪些要注意的事項呢?

  • 註:此篇還是採用 mod-php 的方式,不過 PHP 升級該注意的事項都是一樣的

閱讀全文〈Debian Linux 系統升級 PHP 需要注意的事項 - 2020〉

Apache2 LogFormat Log 加上毫秒紀錄

Apache 的 Access log 一般都是以秒為單位,開啟詳細的 Log 格式為下述:

  • LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined

官方說明:Log Files - Apache HTTP Server Version 2.4

  • %t 的格式:[day/month/year:hour:minute:second zone], e.g: [01/Oct/2020:13:55:36 +0800]
[10/Oct/2000:13:55:36 -0700] (%t) The time that the request was received. The format is:

[day/month/year:hour:minute:second zone]
  day = 2digit
  month = 3letter
  year = 4digit
  hour = 2digit
  minute = 2digit
  second = 2digit
  zone = (`+' | `-') 4digit

想要將精確度到毫秒、微秒等級,要怎麼做呢?

  • 註:Debian、Ubuntu Linux 設定檔:/etc/apache2/apache2.conf

閱讀全文〈Apache2 LogFormat Log 加上毫秒紀錄〉