Skip to content

Zeroplex 生活隨筆

軟體開發、伺服器和生活瑣事

小 縮小字型大小。 中 重設字型大小。 大 放大字型大小。

標籤: Linux

Shell Script 判斷指令執行是否成功

Posted on 2023 年 1 月 22 日2023 年 1 月 22 日 By 日落 在〈Shell Script 判斷指令執行是否成功〉中尚無留言

透過 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
Tags:Bash, Linux

在 Linux 快速刪除目錄

Posted on 2023 年 1 月 15 日2023 年 1 月 15 日 By 日落 在〈在 Linux 快速刪除目錄〉中尚無留言

若要刪除 target/ 目錄,Linux 下的指令就是:

rm -r target/

其中要注意幾件事:

  • 不要使用參數 -v:stdout 很花時間,不使用 -v 速度會快很多
  • 不要使用萬用字元:如果使用 target/* 則 shell 會將萬用字完展開成 target/file-1、target/file-2 … 等等,速度就會變慢

使用 find 來刪除目錄:

find /path/to/target -delete

另一個是使用 rsync 同步一個空的目錄,這比前面幾個方法快很多:

mkdir empty/
rsync -a --delete empty/ target/

參考資料:A faster way to delete millions of files in a directory

Tags:Linux

Force umount all cifs volumes

Posted on 2023 年 1 月 8 日2023 年 1 月 8 日 By 日落 在〈Force umount all cifs volumes〉中尚無留言

sudo umount -a -t cifs -l

  • -l , --lazy:unmount. Detach the filesystem from the file hierarchy now, and clean up all references to this filesystem as soon as it is not busy anymore.

reference:Force Unmount a CIFS Share in Linux

Tags:Linux

暫時停止更新 apt 套件

Posted on 2022 年 12 月 30 日2022 年 12 月 30 日 By 日落 在〈暫時停止更新 apt 套件〉中尚無留言

假設要讓 google-cloud-cli 套件維持在目前的版本、不更新,可以使用 apt-mark 鎖定版本:

apt-mark hold google-cloud-cli

若不再需要鎖定版本,則使用 unhold 解除鎖定:

apt-mark unhold google-cloud-cli
Tags:Linux, Ubuntu

透過 restic 做差異性備份

Posted on 2022 年 12 月 13 日2022 年 12 月 13 日 By 日落 在〈透過 restic 做差異性備份〉中尚無留言

參考 restic 官方文件,先建立 backup repository:

restic -r sftp:backup@host:/storage.server/backup-folder init

restic 會自動記錄檔案內容,在同一個 backup repository 的資料都會做差異性備份,檔案內容沒有更動的話,就不會再複製檔案內容,加快備份速度。

用 restic 備份伺服器的資料:

restic -r sftp:backup@host:/storage.server/backup-folder backup \
    /etc /root /home /var/spool/mail/ \
    --exclude-caches=true \
    --cleanup-cache=true \
    --exclude-if-present='.cache'

restic 也可以針對單一檔案做備份。以下是將 mysqldump 的資料直接 pipe 給 restic 做備份:

mysqldump --all-databases | restic -r sftp:backup@host:/storage.server/backup-folder backup --stdin
Tags:Linux

文章分頁

上一頁 1 ... 5 6 7 ... 32 下一頁

其他

關於我  (About me)

小額贊助

  文章 RSS Feed

  留言 RSS Feed

Apache AWS Bash C/C++ Docker FreeBSD GCP Git Google Java JavaScript Laravel Linux Microsoft MSSQL MySQL Nginx PHP PHPUnit PostgreSQL Python Qt Ubuntu Unix Vim Web Windows WordPress XD 作業系統 分享 好站推薦 專題 攝影 新奇搞笑 新聞 旅遊 生活雜記 程式設計 網路架站 網頁設計 資訊學習 資訊安全 遊戲 音樂


創用 CC 授權條款
本著作係採用創用 CC 姓名標示-相同方式分享 4.0 國際 授權條款授權.