1. #!/bin/bash 
  2.  
  3. SRCDIR="/tmp/test2/source" 
  4. BAKDIR="/tmp/test2/backup" 
  5. TODAY="$(date +%H_%M)" 
  6. FILELIST="/tmp/file.list" 
  7. TIMEKEY="/tmp/test2/time.key" 
  8.  
  9. full() 
  10.     touch $TIMEKEY 
  11.     cd $SRCDIR 
  12.     [ $? -eq 0 ] && find ./ ! -type d > $FILELIST 
  13.     mkdir -p $BAKDIR/$TODAY 
  14.     tar -T $FILELIST -c | tar -x -C $BAKDIR/$TODAY 
  15.  
  16.  
  17. update() 
  18.     [ ! -f $TIMEKEY ] && full 
  19.     touch $TIMEKEY.tmp 
  20.     cd $SRCDIR 
  21.         [ $? -eq 0 ] && find ./ -newer $TIMEKEY ! -type d > $FILELIST.tmp 
  22.     mkdir -p $BAKDIR/$TODAY 
  23.     tar -T $FILELIST.tmp -c | tar -x -C $BAKDIR/$TODAY 
  24.     mv $TIMEKEY.tmp $TIMEKEY 
  25.  
  26.  
  27. case $1 in 
  28.     full) 
  29.         full 
  30.     ;; 
  31.     update) 
  32.         update 
  33.     ;; 
  34.     *) 
  35.         echo "input full or update" 
  36.     ;; 
  37. esac