You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

45 lines
945 B

  1. #!/bin/bash
  2. PROJECT_NAME=app
  3. ROOTFS_APP_DIR=/
  4. export PROJECT_PATH=$(pwd)
  5. set -e
  6. set -x
  7. # 从命令行读取参数,目标IP,是否重启 $0 --ip <ip> --reboot
  8. while [ "$1" != "" ]; do
  9. case $1 in
  10. --ip)
  11. shift
  12. ip=$1
  13. ;;
  14. --reboot)
  15. shift
  16. reboot=$1
  17. ;;
  18. esac
  19. shift
  20. done
  21. # 如果IP为空,提示使用方法
  22. if [ -z "$ip" ]; then
  23. echo "Usage: $0 --ip <ip> --reboot <true|false>"
  24. exit 1
  25. fi
  26. scp -r out/${PROJECT_NAME}.tar.gz root@${ip}:${ROOTFS_APP_DIR}
  27. #如果存在shutdown.sh,则先执行shutdown.sh
  28. ssh root@${ip} 'if [ -f "/${PROJECT_NAME}/shutdown.sh" ];then /${PROJECT_NAME}/shutdown.sh;fi'
  29. ssh root@${ip} "cd ${ROOTFS_APP_DIR} && tar -xvf ${PROJECT_NAME}.tar.gz -C ${ROOTFS_APP_DIR}"
  30. ssh root@${ip} "cd ${ROOTFS_APP_DIR} && rm -rf ${PROJECT_NAME}.tar.gz"
  31. if [ "$reboot" = "true" ]; then
  32. echo "reboot";
  33. ssh root@${ip} "reboot"
  34. fi
  35. echo "deploy success"