rsync数据备份方案
最近整理了下公司的数据备份情况。以下是部分操作的过程
1、rsync数据备份,具体备份过程就不详细介绍。数据都备份在/bakup目录下
2、删除过期数据及空目录
公司的备份数据量比较大,必须及时清除过期数据。
1 2 3 4 5 6 7 | echo "日期:$(date +%Y-%m-%d);以下是以过期31天的文件:" > /var/log/delete .log find /bakup -mtime +31 -name "*" >> /var/log/delete .log find /bakup -mtime +31 -name "*" - type f - exec rm -f {} \; echo "日期:$(date +%Y-%m-%d);以下是需要删除的空目录:" >> /var/log/delete .log find /bakup - type d -empty >> /var/log/delete .log find /bakup -depth -empty - type d - exec rm -r {} ';' |
3、使用tree命令打印备份目录的结果
1 | /usr/bin/tree -shtN /bakup/data >> /var/index .txt |
当备份目录中存在多份备份数据,打印出来的数据将大量重复。我们只想看到最新的数据
1 2 3 | cd /bakup/data day=` ls -lt| awk 'NR==2' | awk '{print $9}' ` /usr/bin/tree -shtN /bakup/data/ $day >> /var/index .txt |
tree命令简单介绍下
参数
-a:显示所有文件和目录;
-A:使用ASNI绘图字符显示树状图而非以ASCII字符组合;
-C:在文件和目录清单加上色彩,便于区分各种类型;
-d:先是目录名称而非内容; -D:列出文件或目录的更改时间;
-f:在每个文件或目录之前,显示完整的相对路径名称;
-F:在执行文件,目录,Socket,符号连接,管道名称名称,各自加上"*","/","@","|"号;
-g:列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码;
-i:不以阶梯状列出文件和目录名称;
-l:<范本样式> 不显示符号范本样式的文件或目录名称;
-l:如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录;
-n:不在文件和目录清单加上色彩;
-N:直接列出文件和目录名称,包括控制字符;
-p:列出权限标示;
-P:<范本样式> 只显示符合范本样式的文件和目录名称;
-q:用“?”号取代控制字符,列出文件和目录名称;
-s:列出文件和目录大小;
-t:用文件和目录的更改时间排序;
-u:列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码;
-x:将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该目录予以排除在寻找范围外。
这条命令中打印出来的树结构包含了目录和文件的大小
1 | /usr/bin/tree -shtN /bakup/data/ $day >> /var/index .txt |
用这条语句把目录的大小[4.0K]替换掉,出来的结果就是只显示文件大小的树结构。
1 | /bin/sed -i 's/\[4\.0K\] //g' /var/index .txt |
你可以在页面上显示出来,也可以定时邮件发送给运维人员!
1 | /bin/mail -s "备份数据" "****@qq.com" < /var/index .txt |
技术链接