1. 程式人生 > >Linux下定時備份檔案

Linux下定時備份檔案

今天有人讓我給寫個指令碼,說是讓Linux定時備份檔案資料,並刪除超過一定時間的備份。聽起來很有意思,一番摸索之後成功了沒有呢?(因為是給對linux不太熟的人看,所以比較詳細)具體看下面吧:

一、 編寫指令碼

編寫一個指令碼檔案,使指令碼可以執行備份命令。
例如,將檔案目錄 /home/backups/balalala 備份到/home目錄下,並壓縮。

1. 建立指令碼

命令格式: touch 路徑/檔名.sh
例如:
輸入命令:touch /home/backup.sh
這裡寫圖片描述

2. 寫入命令

首先進入指令碼:vi命令
vi /home/backup.sh
在指令碼內寫入:

#!/bin/sh
mkdir /home/beifen
#建立一個臨時檔案(要儲存備份的路徑)
cp -r /home/backups/balalala  /home/beifen
#資料存在backups目錄下,備份到beifen目錄下,所以先將資料拷過來
tar -zcPvf /home/backup$(date +%Y%m%d).tar.gz /home/beifen
 #將資料所在資料夾beifen打包
rm -rf /home/beifen/
 #刪除臨時檔案內容

find ./ -mtime +30 -name "*.tar.gz" -exec rm -rf {} \;
#刪除改資料夾下超過30天的檔案

這裡寫圖片描述

3. 執行指令碼檔案

直接手動執行指令碼檔案。
命令格式:sh 路徑/檔名.sh
例如:sh /home/backup.sh

二、 設定定時執行本指令碼。

例如:設定指令碼每7天執行一次。

1. 安裝crond

如果沒有安裝crond服務就先裝上服務。
檢查服務狀態:service crond status

2. 修改crontab內容

輸入命令:crontab –e
進入後繼續輸入命令:0 0 /7 * /home/backup.sh
設定為每7天執行一次指令碼檔案
然後,儲存退出:wq

sh指令碼前面五個欄位分別表示分鐘(0-59)、小時(0-23)、日(1-31)、月(0-12)、星期幾(0-6)後面的為指令碼所在目錄

這裡寫圖片描述

3. 重新啟動crond服務

輸入命令:service crond restart

至此配置完成!