Chinaunix首页 | 论坛 | 博客
  • 博客访问: 410605
  • 博文数量: 119
  • 博客积分: 25
  • 博客等级: 民兵
  • 技术积分: 1061
  • 用 户 组: 普通用户
  • 注册时间: 2012-10-14 12:48
个人简介

醉心于技术。

文章分类

全部博文(119)

文章存档

2018年(34)

2016年(1)

2015年(4)

2014年(6)

2013年(74)

我的朋友

分类: 系统运维

2013-09-01 11:48:16

有一个脚本,处理一个一个服务器中无用的folders。其中用到了comm,comm是比较两个文件的异同,但是要求这两个文件的内容必须是被sort的。

这里ls把当前所有的目录都记录到/home/nova/nan/validation/tmp里,注意,这个tmp是需要与其他文件比较的,看似 ls > /home/nova/nan/validation/tmp 并没有在保存之前sort内容,但是ls命令本身就有sort的功能,罗列的文件是被sort之后的,所以这里不再需要sort命令!


例如如下,
  1. #!/bin/env bash
  2. # the delete the invalid folders in integration which do not exit in production.
  3. # note: the script locates in /home/nova/scripts/graphite/ (created by nova account)
  4. # but run by graphite account.
  5. # full path is needed for this job.

  6. echo '' > /home/xxxx/nan/validation/production_list

  7. # list all valid folders to production_list
  8. cd /opt/xxxx/storage/xxxxx/Opsview/GOP-xxxxxx/

  9. find . -mindepth 3 -maxdepth 3 -type d | grep -ve \.\/int | cut -d\/ -f4 | \
  10. sort | uniq > /home/nova/nan/validation/production_list

  11. # delete invalid folders
  12. lines=$(wc -l /home/xxxx/nan/validation/production_list | egrep -io [0-9]+)
  13. if [ "$lines" -gt 2000 ];then
  14.     for i in /opt/xxxx/storage/xxxxx/Opsview/GOP-xxxxxx/int*;
  15.     do
  16.         cd $i/RPM5
  17.         ls > /home/xxxx/nan/validation/tmp
  18.         for a in $(comm -23 /home/xxxx/nan/validation/tmp /home/nova/nan/validation/production_list)
  19.         do
  20.             #rm -rf $a
  21.             ls -ld $a
  22.         done
  23.     done
  24. else
  25.     echo "$(date +%Y-%m-%d-%H-%M):error in /home/xxxx/nan/validation/production_list"
  26.     >> /home/xxxx/nan/validation/dellog
  27. fi





阅读(1810) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~