天天看點

rsync資料備份方案

最近整理了下公司的資料備份情況。以下是部分操作的過程

1、rsync資料備份,具體備份過程就不詳細介紹。資料都備份在/bakup目錄下

2、删除過期資料及空目錄

公司的備份資料量比較大,必須及時清除過期資料。

1

2

3

4

5

6

7

<code>echo</code> <code>"日期:$(date +%Y-%m-%d);以下是以過期31天的檔案:"</code> <code>&gt; </code><code>/var/log/delete</code><code>.log</code>

<code>find</code> <code>/bakup</code> <code>-mtime +31 -name </code><code>"*"</code> <code>&gt;&gt; </code><code>/var/log/delete</code><code>.log</code>

<code>find</code> <code>/bakup</code> <code>-mtime +31  -name </code><code>"*"</code> <code>-</code><code>type</code> <code>f  -</code><code>exec</code> <code>rm</code> <code>-f {} \;</code>

<code>#删除bakup目錄下的所有空目錄(會逐級遞删直到不存在任何空目錄)</code>

<code>echo</code> <code>"日期:$(date +%Y-%m-%d);以下是需要删除的空目錄:"</code> <code>&gt;&gt; </code><code>/var/log/delete</code><code>.log</code>

<code>find</code> <code>/bakup</code> <code>-</code><code>type</code> <code>d -empty &gt;&gt; </code><code>/var/log/delete</code><code>.log</code>

<code>find</code> <code>/bakup</code> <code>-depth  -empty -</code><code>type</code> <code>d -</code><code>exec</code> <code>rm</code> <code>-r {} </code><code>';'</code>

3、使用tree指令列印備份目錄的結果

<code>/usr/bin/tree</code> <code>-shtN </code><code>/bakup/data</code> <code>&gt;&gt; </code><code>/var/index</code><code>.txt</code>

當備份目錄中存在多份備份資料,列印出來的資料将大量重複。我們隻想看到最新的資料

<code>cd</code> <code>/bakup/data</code>

<code>day=`</code><code>ls</code> <code>-lt|</code><code>awk</code> <code>'NR==2'</code><code>|</code><code>awk</code> <code>'{print $9}'</code><code>`</code>

<code>/usr/bin/tree</code> <code>-shtN </code><code>/bakup/data/</code><code>$day &gt;&gt; </code><code>/var/index</code><code>.txt</code>

tree指令簡單介紹下

參數

-a:顯示所有檔案和目錄;

-A:使用ASNI繪圖字元顯示樹狀圖而非以ASCII字元組合;

-C:在檔案和目錄清單加上色彩,便于區分各種類型;

-d:先是目錄名稱而非内容; -D:列出檔案或目錄的更改時間; 

-f:在每個檔案或目錄之前,顯示完整的相對路徑名稱; 

-F:在執行檔案,目錄,Socket,符号連接配接,管道名稱名稱,各自加上"*","/","@","|"号; 

-g:列出檔案或目錄的所屬群組名稱,沒有對應的名稱時,則顯示群組識别碼; 

-i:不以階梯狀列出檔案和目錄名稱; 

-l:&lt;範本樣式&gt; 不顯示符号範本樣式的檔案或目錄名稱; 

-l:如遇到性質為符号連接配接的目錄,直接列出該連接配接所指向的原始目錄; 

-n:不在檔案和目錄清單加上色彩; 

-N:直接列出檔案和目錄名稱,包括控制字元; 

-p:列出權限标示;

-P:&lt;範本樣式&gt; 隻顯示符合範本樣式的檔案和目錄名稱; 

-q:用“?”号取代控制字元,列出檔案和目錄名稱; 

-s:列出檔案和目錄大小; 

-t:用檔案和目錄的更改時間排序; 

-u:列出檔案或目錄的擁有者名稱,沒有對應的名稱時,則顯示使用者識别碼; 

-x:将範圍局限在現行的檔案系統中,若指定目錄下的某些子目錄,其存放于另一個檔案系統上,則将該目錄予以排除在尋找範圍外。

這條指令中列印出來的樹結構包含了目錄和檔案的大小

用這條語句把目錄的大小[4.0K]替換掉,出來的結果就是隻顯示檔案大小的樹結構。

<code>/bin/sed</code>  <code>-i </code><code>'s/\[4\.0K\]  //g'</code> <code>/var/index</code><code>.txt</code>

你可以在頁面上顯示出來,也可以定時郵件發送給運維人員!

<code>/bin/mail</code> <code>-s </code><code>"備份資料"</code> <code>"****@qq.com"</code> <code>&lt; </code><code>/var/index</code><code>.txt</code>

<a href="http://s4.51cto.com/wyfs02/M00/84/2C/wKioL1eHXzziBpMVAAB4lWr2BqE561.jpg" target="_blank"></a>

本文轉自 irow10 51CTO部落格,原文連結:http://blog.51cto.com/irow10/1826458,如需轉載請自行聯系原作者