天天看点

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,如需转载请自行联系原作者