Scripts to automating daily tasks http://gitea.open6hosting.com/Open6Hosting/smartos-bin
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

75 řádky
1.2 KiB

  1. #!/bin/bash
  2. usage()
  3. {
  4. echo "Usage: $0 -z UUID -d days" >&2
  5. exit 1
  6. }
  7. while getopts "z:d:" opt;
  8. do
  9. case "$opt" in
  10. z)
  11. UUID=$OPTARG
  12. ;;
  13. d)
  14. DAYS=$OPTARG
  15. ;;
  16. *)
  17. usage
  18. ;;
  19. esac
  20. done
  21. shift $((OPTIND-1))
  22. if [ -z "${UUID}" ]; then
  23. usage
  24. fi
  25. if [ -z "${DAYS}" ]; then
  26. usage
  27. fi
  28. BRAND=`/usr/sbin/vmadm get $UUID | json brand | tr -d '\n'`
  29. RUTADESTINO="/zones/tools/mounts"
  30. RUTAORIGEN="/export/ftpbackup/ns3043697.ip-164-132-169.eu"
  31. SERVIDOR="ftpback-rbx3-470.ovh.net"
  32. mkdir -p $RUTADESTINO
  33. mount $SERVIDOR:$RUTAORIGEN $RUTADESTINO
  34. if [ $? != 0 ]; then
  35. echo "MOUNT FAILED."
  36. umount $RUTADESTINO
  37. exit
  38. fi
  39. mkdir -p $RUTADESTINO/$UUID
  40. if [ $? != 0 ]; then
  41. echo "FAIL TO CREATE FOLDER $UUID."
  42. umount $RUTADESTINO
  43. exit
  44. fi
  45. # mantain backups of the last N days
  46. find $RUTADESTINO/$UUID -type f -mtime +$DAYS -delete
  47. snapshot()
  48. {
  49. /usr/sbin/zfs snapshot zones/$1@`date +%Y%m%d`
  50. /usr/sbin/zfs send zones/$1@`date +%Y%m%d` > $RUTADESTINO/$UUID/$1@`date +%Y%m%d`
  51. }
  52. snapshot $UUID
  53. if [ $BRAND = "kvm" ] || [ $BRAND = "bhyve" ] ; then
  54. snapshot $UUID-disk0
  55. fi
  56. /usr/sbin/zonecfg -z $UUID export > $RUTADESTINO/$UUID/$UUID.`date +%Y%m%d`.cfg
  57. umount $RUTADESTINO