whois 查詢有時會查不到資料:
$ whois mail.google.com No match for "MAIL.GOOGLE.COM".
可能是查詢時使用的 server 沒有該 domain 的資料。
這時可以直接到 IANA 的 server 查詢:
whois -h whois.iana.org mail.google.com
軟體開發、伺服器和生活瑣事
whois 查詢有時會查不到資料:
$ whois mail.google.com No match for "MAIL.GOOGLE.COM".
可能是查詢時使用的 server 沒有該 domain 的資料。
這時可以直接到 IANA 的 server 查詢:
whois -h whois.iana.org mail.google.com
Laravel 的 queue worker 與 Horizon 需要透過 artisan queue:work
在背景執行,若可以的話,再使用 systemd 或 supervisor 來監控運作狀態。
不過 systemd 和 supervisor 都需要 root 權限來操作,說起來蠻麻煩的,所以寫了一小段 shell script 來啟動與停止,沒辦法在 worker 中斷時 restart,但可以做 graceful start & shutdown。
啟動 queue worker:
./artisan queue:work \ --no-interaction --no-ansi >> storage/logs/queue.log 2>&1 & # 透過 $? 來檢查指令執行是否成功 if [ $? -ne 0 ]; then echo "FAILED !" else echo "OK" fi
停止所有的 queue worker:
# queue:restart 會送訊號給所有的 worker 來 graceful shutdown ./artisan queue:restart --quiet --no-ansi # 檢查是否所有的 proccess 都停止 while [ 1 ]; do QUERY="$(ps -ef | grep queue:work | grep -v grep)" if [ -z "${QUERY}" ]; then break else sleep 1 fi done echo "OK"
Laravel Horizon 的操作相對簡單一些。
啟動 Horizon:
./artisan horizon \ --quiet --no-interaction --no-ansi >> storage/logs/horizon.log 2>&1 & if [ $? -ne 0 ]; then echo "FAILED !" else echo "OK" fi
停止 Horizon:
artisan horizon:terminate --quiet --no-interaction --no-ansi # 檢查 proccess 是否終止 while [ 1 ]; do QUERY="$(ps -ef | grep horizon | grep -v grep)" if [ -z "${QUERY}" ]; then echo "OK" else sleep 1 fi done
透過 Laravel Horizon 可以快速監看 queued jobs 的運作狀況,不過要注意的是僅支援資料放在 Redis 中的 queue:
Laravel Horizon requires that you use Redis to power your queue. Therefore, you should ensure that your queue connection is set toredis
in your application’sconfig/queue.php
configuration file.
所以要先檢查幾個項目:
composer reuqire predis/predis
.env
中的 QUEUE_CONNECTION
數值必須是 redis
config/queue.php
中的 default
建議直接改成 redis
在 CloneZilla 中看到 zstd 這個壓縮工具,其演算法由 Facebook 開發,速度和壓縮比介於 gzip 和 bzip2 之間,且支援 multi-thread,打包大量資料時蠻好用的。
使用 tar
時,使用 -I
參數來使用 zstd
:
tar -I zstdmt -cf pack.tar.zst logs/
備註:zstdmt
是 zstd -T0
的 alias
如果只執行 docker-php-ext-install
會出現錯誤訊息:
PHP Startup: Unable to load dynamic library 'pdo_pgsql.so'
必須安裝 postgresql-dev
套件,完整設定為:
RUN apk add --no-cache postgresql-dev && \ docker-php-ext-install pdo pdo_pgsql pgsql