免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4655 | 回复: 1
打印 上一主题 下一主题

写了一个用于比较文件的脚本  关闭 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-11-07 18:56 |只看该作者 |倒序浏览
主要偶们软件的系统文件总是莫名其妙被一些不知道不熟悉unix和系统的管理员改掉或者删掉,所以写了一个shell。

这个的意思是,第一次先对/usr/local/mysys下面的目录和文件作一次扫描,记录一下文件的大小和时间.
lf5 /usr/local/mysys /etc/filelist /tmp/report  backup

这个的意思是根据以前生成的/etc/filelist的内容去比较/usr/local/mysys里面的内容,将报告输出到/tmp/report里面.
lf5 /usr/local/mysys /etc/filelist /tmp/report
初初学shell,乱写一通,多指点
  1. #!/bin/sh  
  2. #if the number of parameters equal to 4,then only backup.
  3. #echo "usuage:lf <compare path> <backup file path> <output file path> [backup]"
  4. #

  5. clear

  6. echo "************************************"
  7. echo "*Files  Compare Tool               *"
  8. echo "*VERSION:0.15                      *"
  9. echo "*10/15/2003---11/07/2003           *"
  10. echo "************************************"

  11. echo "\n"                
  12. echo `date`                
  13. echo "\n"                

  14. if [ $# -eq 4 ]
  15. then

  16. cd $1
  17. find . -type f -print |xargs ls -l|awk '{printf"%-45s %-9s %s%s%s\n",$9,$5,$6,$7,$8}' > $2
  18. echo "the backup file list is in the dir "$2
  19. exit

  20. elif [ $# -lt 3 ]
  21. then
  22. echo "usuage:lf <compare path> <backup path> <output file path> [backup]"
  23. exit

  24. fi

  25. #calculate the total files

  26. count=0

  27. while read line
  28. do

  29. count=`expr $count + 1`
  30. #echo $count
  31. echo "\033[22;12H: \c"$count"\c"
  32. echo $count

  33. ofilename=` echo $line|awk '{print $1}' `
  34. ofilesize=` echo $line|awk '{print $2}' `
  35. ofiledate=` echo $line|awk '{print $3}' `

  36. #result=` ls -l $ofilename`
  37. #echo $result
  38. #if  echo $result|grep "No such" >/dev/null

  39. if [ -f $ofilename ]
  40. then
  41. result=` find $ofilename|xargs ls -l`
  42. nfilename=` echo $result|awk '{print $9}' `
  43. nfilesize=` echo $result|awk '{print $5}' `
  44. nfiledate=` echo $result|awk '{printf"%s%s%s\n",$6,$7,$8}' `

  45. if [ $ofilesize != $nfilesize ] || [ $ofiledate != $nfiledate ]
  46. #size or date not equal
  47. then
  48. echo  $ofilename $ofilesize $ofiledate|awk '{printf"< %-45s %-9s %s\n",$1,$2,$3}' >>$3
  49. echo  $nfilename $nfilesize $nfiledate|awk '{printf"> %-45s %-9s %s\n",$1,$2,$3}' >>$3

  50. fi

  51. else
  52. echo  $ofilename "not exist"|awk '{printf"%-45s %-9s %s\n",$1,$2,$3}' >>$3

  53. fi

  54. done < $2

  55. #end of the comparing
  56. echo "\n"
复制代码

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
2 [报告]
发表于 2003-11-07 19:12 |只看该作者

写了一个用于比较文件的脚本

支持一下!
建议今后上贴时对代码进行格式上的处理,以使代码结构看起来清晰一点!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP