backup.sh 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. #!/bin/bash
  2. clear
  3. if [ "${EUID}" -ne 0 ]; then
  4. echo "You need to run this script as root" && exit 1
  5. fi
  6. TodayDate=$(date +"%Y-%m-%d")
  7. function rclone_backup {
  8. echo " Enter Your Email To Receive Message"
  9. read -rp " Email: " -e email
  10. mkdir /root/backup
  11. cp /etc/passwd backup/
  12. cp /etc/group backup/
  13. cp /etc/shadow backup/
  14. cp /etc/gshadow backup/
  15. cp -r /usr/local/shadowsocksr/ backup/shadowsocksr
  16. cp -r /etc/trojan backup/trojan
  17. cp -r /etc/v2ray backup/v2ray
  18. cp -r /etc/wireguard backup/wireguard
  19. cp -r /home/vps/public_html backup/public_html
  20. cp -r /var/lib/premium-script/ backup/premium-script
  21. cd ~
  22. zip -r $IP-$date.zip backup > /dev/null 2>&1
  23. rclone copy /root/$IP-$date.zip dr:backup/
  24. url=$(rclone link dr:backup/$IP-$date.zip)
  25. id=(`echo $url | grep '^https' | cut -d '=' -f 2`)
  26. link="https://drive.google.com/u/4/uc?id=${id}&export=download"
  27. echo -e "The following is a link to your vps data backup file.
  28. Your VIRTUAL PRIVATE SERVER IP ADDRESS $IP
  29. $link
  30. If you want to restore data, please enter the link above." | mail -s "Backup Data" $email
  31. echo "Done, Please Check Your Email"
  32. rm -rf /root/backup
  33. rm -r /root/$IP-$date.zip
  34. }
  35. INFO="[ ENABLED ]" && ERROR="[ DISABLED ]"
  36. checkCron=$( grep -c -E "^# BEGIN_Backup" /etc/crontab )
  37. [[ "$checkCron" -eq 1 ]] && getStat="${INFO}" ||getStat="${ERROR}"
  38. start() {
  39. email=$(cat /home/email)
  40. if [[ "$email" = "" ]]; then
  41. echo "Please enter your email"
  42. read -rp "Email: " -e email
  43. cat << EOF >> /home/email
  44. $email
  45. EOF
  46. fi
  47. cat << EOF >> /etc/crontab
  48. # BEGIN_Backup
  49. 5 0 * * * root backup.sh
  50. # END_Backup
  51. EOF
  52. service cron restart
  53. echo " Autobackup Has Been Started"
  54. echo " Data Will Be Backed Up Automatically at 00:05 GMT +0800" && exit 0
  55. }
  56. stop() {
  57. email=$(cat /home/email)
  58. sed -i "/^$email/d" /home/email
  59. sed -i "/^# BEGIN_Backup/,/^# END_Backup/d" /etc/crontab
  60. service cron restart
  61. echo " Autobackup Has Been Stopped" && exit 0
  62. }
  63. clear
  64. echo
  65. echo "=============================== [ AUTOBACKUP ]"
  66. echo -e "Status $sts"
  67. echo -e "01) start - Start Autobackup"
  68. echo -e "02) stop - Stop Autobackup"
  69. echo -e "==========================================="
  70. read -rp "Enter your choice: " -e choose
  71. case $choose in
  72. 01|start )
  73. start && break
  74. ;;
  75. 02|stop )
  76. stop && break
  77. ;;
  78. * )
  79. clear && echo "You Entered The Wrong Number"
  80. ;;
  81. esac