iT邦幫忙

2026 iThome 鐵人賽

DAY 9
0
IT Operation

從零開始的 Linux 維運與 Bash 自動化實戰 30 天系列 第 9

Day 09: Cron 定時排程與 Shell 腳本實作

  • 分享至 

  • xImage
  •  

完成了 Nginx 網站架設與 SSH 安全防護後,第九天要學習 Linux 維運自動化——「讓系統在半夜自動幫你備份網站與資料庫」。
結合 Shell Script(Bash 腳本) 與 Linux 內建的 Cron 排程系統,打造一個「自動化定時備份機制」。

Shell Script 基礎:撰寫自動化備份腳本
在 Linux 中,我們可以將一連串的指令寫進 .sh 檔案中,讓系統依序執行。

  1. 建立腳本目錄與檔案
    首先連線進虛擬機,建立一個專門放置腳本的目錄
  2. 撰寫 Bash 腳本 (backup.sh)
    在 nano 編輯器中輸入程式碼
  3. 賦予執行權限並手動測試
    存檔離開後,必須給予腳本「可執行權限(+x)」才能運作
    https://ithelp.ithome.com.tw/upload/images/20260910/201838470ni95fJA0b.png
    https://ithelp.ithome.com.tw/upload/images/20260910/20183847R0UA2wGRvM.png

Cron 排程系統:語法速查表
Linux 內建的 cron 服務能讓我們指定指令執行的「精確時間」。時間欄位由 5 個空格分隔的欄位組成:
* * * * * 要執行的指令
│ │ │ │ │
│ │ │ │ └── 星期 (0 - 7) (0 和 7 都代表週日)
│ │ │ └───── 月份 (1 - 12)
│ │ └──────── 日期 (1 - 31)
│ └─────────── 小時 (0 - 23)
└────────────── 分鐘 (0 - 59)

常用 Cron 時間範例:

Cron 時間設定 執行時機說明
***** 每分鐘 執行一次(適合測試驗證)
0 2 * * * 每天凌晨 02:00 執行一次(常用於例行備份)
0 3 * * 1 每週一凌晨 03:00 執行一次
*/15 * * * * 每隔 15 分鐘 執行一次
  • 排程設定:執行 crontab -e 並寫入 * * * * * /home/ubuntu/scripts/backup.sh,實現每分鐘自動定時備份。
  • 自動化驗證:靜置 2~3 分鐘後執行 cat ~/backup.log 與 ls -l /tmp/,畫面上自動印出多筆帶有不同時間戳記的備份紀錄,證明無人值守自動化成功運作。
    https://ithelp.ithome.com.tw/upload/images/20260910/20183847lAEnmUAq2b.png

上一篇
Day 08: SSH 遠端連線安全與金鑰認證
下一篇
Day 10:資源監控與服務排查 (Monitoring & Diagnostics)
系列文
從零開始的 Linux 維運與 Bash 自動化實戰 30 天10
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言