歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> Linux簡單的備份腳本教程

Linux簡單的備份腳本教程

日期:2017/3/2 10:08:51   编辑:關於Linux

一、編寫腳本如下:
建立備份目錄

# mkdir /backup

編輯備份腳本

# vi /backup/bak.sh

腳本內容如下:

#!/bin/bash
##用途:備份mysql數據,刪除k天前的數據##
##作者:Barlow##
##最後修訂:2013-03-16##
#
#設定備份保留天數K
K=7
#獲取當前日期
TODAY=`date '+%Y%m%d'`
#獲取K天前日期
KDAY=`date -d "$TODAY - $K day" '+%Y%m%d'`
#建立備份子目錄
mkdir -p /backup/$1
#進行備份,並將結果寫入日志
tar zcvf /backup/$1/$TODAY.tar.gz $1 >/dev/null 2>/backup/$1/$TODAY.bak.log
#判斷是否出錯,並將執行情況寫入日志
if [ $? -eq 0 ]
then
echo "$1 $TODAY backup is successful!" >> /backup/$1/$TODAY.bak.log
else
echo "$1 $TODAY backup is error!" >> /backup/$1/$TODAY.bak.log
fi

#刪除過期備份
if [ -d "/backup/$1/$KDAY.tar.gz" ]
rm -rf /backup/$1/$KDAY.tar.gz
else
echo "The $KDAY.tar.gz is not exist!" >> /backup/$1/$TODAY.bak.log
fi
exit

注意:$1 表示在該腳本執行時後面跟的第一個參數,也就是我們需要備份的目錄
$? 表示上一個命令執行情況,如果返回結果為0,則執行正常,否則不正常

二、配置計劃任務:
建立備份任務計劃,如備份mysql目錄,每天凌晨3點整執行,具體如下:

#vim /etc/crontab
0 3 * * * root /backup/bak.sh /var/lib/mysql

注意:
1、shell腳本和計劃任務按上述的方法寫,則可以很多備份使用同一個腳本,其中/var/lib/mysql就是備份腳本中的$1
2、一般系統級的計劃任務才放入/etc/crontab中,用戶級的計劃任務使用crontab -e編輯。

三、重啟服務使計劃任務生效
編輯後記得重啟crond服務,並將其設置為自啟動:

#service crond restart
停止 crond: [確定]
正在啟動 crond: [確定]
#chkconfig crond on

Copyright © Linux教程網 All Rights Reserved