备份www和数据库的脚本

九门提督

本次备份思路为,每日留有快照,每周二使用Tarball备份于其它分区,保留上一周纪录,同时Log写入/var/log/snap_backup_log中。


  1. #!/bin/sh
  2. #############################################
  3. #Tuesday tar backup other day snapshot
  4. #design by leocraft
  5. #leocraft[AT]Gmail.com
  6. ##############################################
  7.  
  8. log_file=/var/log/snap_backup_log
  9.  
  10. now=`date`;
  11. today=`date +%y%m%d`;
  12. lastweek=`date -v -7d +%y%m%d`;
  13. week=`date +%w`
  14. backup_wday=2
  15.  
  16. mount -o rw /dev/da1s1d /var/backup
  17.  
  18. for target in www sql
  19. do
  20. souce_dir=/var/"$target"
  21. mirror_dir=/mnt/"$target"
  22. snap_file=/var/"$target"/"$target"_"$today"_snap
  23. last_snap_file=/var/"target"/"$target"_"$lastweek"_snap
  24. last_tarball=/var/backup/backup_"$target"_"$lastweek".tar
  25. this_tarball=/var/backup/backup_"$target"_"$today".tar
  26.  
  27. log_format_tarball="$now I backup $target tarball at $this_tarball"
  28. log_format_snapshot="$now I snapshot the $target at $snap_file"
  29.  
  30. mount -u -o snapshot $snap_file $souce_dir
  31. echo $log_format_snapshot >> $log_file
  32. if [ $week = $backup_wday ]
  33. then
  34. mdconfig -a -t vnode -f $snap_file -u 1
  35. mount -r /dev/md1 $mirror_dir
  36. if [ -f $last_tarball ]
  37. then
  38. rm $last_tarball
  39. fi
  40. cd $mirror_dir
  41. tar -cf $this_tarball *
  42. cd ..
  43. umount $mirror_dir
  44. mdconfig -d -u 1
  45. echo $log_format_tarball >> $log_file
  46. fi
  47. if [ -f $last_snap_file ]
  48. then
  49. rm $last_snap_file
  50. fi
  51. done
  52.  
  53. umount /var/backup

评论内容

发表评论

  • 输入内容会自动换行、分段。

有关输入格式的详细解释