在 CloneZilla 中看到 zstd 這個壓縮工具,其演算法由 Facebook 開發,速度和壓縮比介於 gzip 和 bzip2 之間,且支援 multi-thread,打包大量資料時蠻好用的。
使用 tar 時,使用 -I 參數來使用 zstd:
tar -I zstdmt -cf pack.tar.zst logs/
備註:zstdmt 是 zstd -T0 的 alias
軟體開發和生活瑣事
在 CloneZilla 中看到 zstd 這個壓縮工具,其演算法由 Facebook 開發,速度和壓縮比介於 gzip 和 bzip2 之間,且支援 multi-thread,打包大量資料時蠻好用的。
使用 tar 時,使用 -I 參數來使用 zstd:
tar -I zstdmt -cf pack.tar.zst logs/
備註:zstdmt 是 zstd -T0 的 alias
wait-for-it 是個 shell script 撰寫的工具,會等待並檢查目標是否可以進行 TCP 連線。
例如等待 mysql 啟動:
$ wait-for-it 127.0.0.1:3306 wait-for-it: waiting 15 seconds for 127.0.0.1:3306
可以在 docker 中檢查其他 container / service 是否啟動,可以的話才繼續執行:
# wait for MySQL to initialize wait-for-it db:3306 # run DB migration php artisan migrate
VMware Workstation 跑 Windows 11 慢到一個不可思議,VM host 的處理器顯視為滿載,但 VM guest 卻一直卡住不會動。追了很久,才發現是 Slimbook Battery 調整過顯卡的參數,導致 VMware 無法正常模擬顯卡。
解法有二個,最直接的方法就是關閉 Slimbook Battery 的省電功能;另一個是暫時將 VM host 的 3D accelerator 功能關閉。
以下方法僅適用於 UbuntuMate 22.04,其他版本可能無法使用相同的方法修改。
開啟系統設定檔 /usr/share/glib-2.0/schemas/30_ubuntu-mate.gschema.override,應該可以在檔案前半段找到系統預設使用的背景圖片檔 Jammy-Jellyfish_WP_4096x2304_Green.png。
把這個設定改為自己要使用的檔案即可:
background=/home/zeroplex/圖片/login.png
修改完成以後,打開終端機,輸入以下指令:
sudo glib-compile-schemas /usr/share/glib-2.0/schemas/
重新開機以後,登入畫面應該就會更新。
參考資料:How to change login screen background in Ubuntu Mate 21.04?
透過 bash 中的 $? 來讀取前一個指令的狀態 (exit code)。一般來說,正常執行的 exit code 會是 0,若有發生錯誤或其他狀況,exit code 則會是 1 – 255 之間。
正常結束的 exit code:
ls /var echo $? 0
若發生錯誤,則有其他 exit code:
ls /not-exsit echo $? 2
在 shell script 中用 if 判斷程式是否要繼續執行:
curl -s https://test.com/install.sh -o install.sh
if [ @? -ne 0 ]; then
echo "download failed"
exit
fi
# run install