shell备份脚本(改进版)

1023阅读 0评论2011-09-03 Linuxer2011
分类:LINUX

  1. #!/bin/bash
  2. olddir=~/shell
  3. newdir=/media/LinuxShare/backup

  4. # 若切换目录成功,则返回0,否则返回1
  5. cd $newdir 2> /dev/null    && cd $olddir 2> /dev/null
  6. if [ $? != 0 ]
  7. then
  8.     echo "Can not find directory $newdir or $olddir,backup fails." | mailx -s "Backup Notification" iamaric@139.com    
  9.     exit
  10. fi

  11. i=0

  12. cd $olddir
  13. # 遍历目录所有文件
  14. for filename in *
  15. do
  16.     cd $newdir
  17.     if [ -e "$filename" ]
  18.     then
  19.         if ! diff $newdir/$filename $olddir/$filename > /dev/null
  20.         then    # return 0
  21.             mv $newdir/$filename $newdir/$filename.$(date +%Y-%m-%d)
  22.             cp $olddir/$filename $newdir
  23.             ((i++))
  24.         fi
  25.     elif [ ! -e "$filename" ]
  26.     then
  27.         cp $olddir/$filename $newdir
  28.         ((i++))
  29.     fi
  30. done

  31. if [ $i -gt 0 ]
  32. then
  33.     echo "$i file(s) have been updated.Backup succeed." | mailx -s "Backup Notification" iamaric@139.com
  34. else
  35.     echo "Nothing new to backup." | mailx -s "Backup Notification" iamaric@139.com
  36. fi
上一篇:一个小小的shell备份脚本
下一篇:修复Fedora15引导区方法