Docker 的 Crontab 設定作法

Docker 核心概念是 Microservice,所以應該盡量不要進去機器做 Cron 的設定,要再外部控制 Cron 的執行才是。

Crontab 主要是希望在環境裡面跑那隻程式,所以只要由外部呼叫程式執行,程式都在 Docker 的環境裡面跑,並不是外部的環境,就不會有任何影響。

所以從 Docker 教學第一行 Hello 就有示範怎麼玩了~

  • docker exec CONTAINER-NAME exec-script-name
  • docker exec -t CONTAINER-NAME /full-path/exec-script-name
  • docker exec -t CONTAINER-NAME exec-script-name
  • 註1:若遇到 Bash 要多個命令使用 ; 分別執行的,可以使用 bash -c 的命令
  • 註2:千萬不要 -it,進入 interactive 就會有 tty 的錯誤出現

閱讀全文〈Docker 的 Crontab 設定作法〉

ShellCheck:Shell Script 分析、檢查工具

Bash / Sh 寫 Shell script 想要有個語法檢查的工具,而不是每次都直接跑,在看結果慢慢 Debug。

這套 ShellCheck 的分析檢查工具很強,除了檢查外,還會建議可以用什麼寫法來寫,不然常常 `` 包一下,就呼叫外部的程式來跑,有很多基本語法可以用,ShellCheck 都會有語法建議。

閱讀全文〈ShellCheck:Shell Script 分析、檢查工具〉

Debian 10 Buster 管理員手冊 發佈

Debian 的發音是 /ˈde.bi.ən/,這個名字是 Debian 的創始人 Ian Murdock 和他的愛妻 Debra 兩個人的名字組合而成的

Debian Handbook 的資料都非常全面又完整,非常推薦有空都可以閱讀看看,Buster 最近剛釋出,可以來去看看~

閱讀全文〈Debian 10 Buster 管理員手冊 發佈〉

Docker 遇到 WARN No swap limit support 修復

Docker 於 syslog (tail -500 /var/log/syslog | grep docker)、docker info (docker info > /dev/null) 都看到此訊息:

WARNING: No swap limit support

此問題看起來並不影響正常運作,只有記憶體不夠用得時候才會炸掉,要怎麼解決呢?

閱讀全文〈Docker 遇到 WARN No swap limit support 修復〉

PHP 無法看到、寫入 /tmp 的解法

PHP 在寫入檔案的時候(Debain Linux),函式回傳值都是正確的,但是檔案就是沒有出現,到底發生什麼事情呢?

範例程式

<?php
var_dump(file_put_contents('/tmp/abc.txt', 'abc', FILE_APPEND | LOCK_EX)); // int(3)
?>

回傳 3 bytes 都是正確的,但是就是 /tmp/abc.txt 沒有產生

閱讀全文〈PHP 無法看到、寫入 /tmp 的解法〉

Linux Systemd 設定開機自動啟動的程式、服務

Linux 以前 initrd 管理開機啟動程式的時代,可以使用 update-rc.d、rcconf、sys-rc-conf 來管理 /etc/rc0.d/ ~ /etc/rc6.d/,現在換 Systemd 後,想要開機自動啟動的程式,要如何設定呢?

閱讀全文〈Linux Systemd 設定開機自動啟動的程式、服務〉