curl 發送 HTTP POST 的指令大概長這樣:
curl -X POST https://my.domain/path/ \
--data 'key=values'
如果要讓 curl 讀取 pipe 進來的資料,則改使用 @- :
echo /var/log/http/error.log | \
curl -X POST https://my.domain/path/ \
--data '@-'
軟體開發和生活瑣事
curl 發送 HTTP POST 的指令大概長這樣:
curl -X POST https://my.domain/path/ \
--data 'key=values'
如果要讓 curl 讀取 pipe 進來的資料,則改使用 @- :
echo /var/log/http/error.log | \
curl -X POST https://my.domain/path/ \
--data '@-'
在多台電腦間共用目錄,samba 應該算是最方便的工具了。
安裝 samba:
sudo apt install samba
安裝完成後,可以在 /etc/samba 找到設定檔 smb.conf。
開啟設定檔,加入目錄共用設定:
[folderName] comment = Samba on Ubuntu path = /home/zeroplex/files/ read only = no browsable = yes
foldername:在網路上要顯示的名稱,照上面的設定為 \\192.168.0.xxx\folderNamepath:主機上要共用的目錄路徑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
在 CloneZilla 中看到 zstd 這個壓縮工具,其演算法由 Facebook 開發,速度和壓縮比介於 gzip 和 bzip2 之間,且支援 multi-thread,打包大量資料時蠻好用的。
使用 tar 時,使用 -I 參數來使用 zstd:
tar -I zstdmt -cf pack.tar.zst logs/
備註:zstdmt 是 zstd -T0 的 alias