1
0

run_admin.sh 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. #!/bin/bash
  2. function usage() {
  3. echo "Usage:"
  4. echo " run_admin.sh [CONFIG]"
  5. echo "example :"
  6. echo " run_admin.sh -e server.port=8089 \\"
  7. echo " -e canal.adminUser=admin \\"
  8. echo " -e canal.adminPasswd=admin"
  9. exit
  10. }
  11. function check_port() {
  12. local port=$1
  13. local TL=$(which telnet)
  14. if [ -f $TL ]; then
  15. data=`echo quit | telnet 127.0.0.1 $port| grep -ic connected`
  16. echo $data
  17. return
  18. fi
  19. local NC=$(which nc)
  20. if [ -f $NC ]; then
  21. data=`nc -z -w 1 127.0.0.1 $port | grep -ic succeeded`
  22. echo $data
  23. return
  24. fi
  25. echo "0"
  26. return
  27. }
  28. function getMyIp() {
  29. case "`uname`" in
  30. Darwin)
  31. myip=`echo "show State:/Network/Global/IPv4" | scutil | grep PrimaryInterface | awk '{print $3}' | xargs ifconfig | grep inet | grep -v inet6 | awk '{print $2}'`
  32. ;;
  33. *)
  34. myip=`ip route get 1 | awk '{print $NF;exit}'`
  35. ;;
  36. esac
  37. echo $myip
  38. }
  39. CONFIG=${@:1}
  40. #VOLUMNS="-v $DATA:/home/admin/canal-admin/logs"
  41. PORTLIST="8089"
  42. PORTS=""
  43. for PORT in $PORTLIST ; do
  44. #exist=`check_port $PORT`
  45. exist="0"
  46. if [ "$exist" == "0" ]; then
  47. PORTS="$PORTS -p $PORT:$PORT"
  48. else
  49. echo "port $PORT is used , pls check"
  50. exit 1
  51. fi
  52. done
  53. NET_MODE=""
  54. case "`uname`" in
  55. Darwin)
  56. bin_abs_path=`cd $(dirname $0); pwd`
  57. ;;
  58. Linux)
  59. bin_abs_path=$(readlink -f $(dirname $0))
  60. NET_MODE="--net=host"
  61. PORTS=""
  62. ;;
  63. *)
  64. NET_MODE="--net=host"
  65. PORTS=""
  66. bin_abs_path=`cd $(dirname $0); pwd`
  67. ;;
  68. esac
  69. BASE=${bin_abs_path}
  70. DATA="$BASE/data"
  71. mkdir -p $DATA
  72. if [ $# -eq 0 ]; then
  73. usage
  74. elif [ "$1" == "-h" ] ; then
  75. usage
  76. elif [ "$1" == "help" ] ; then
  77. usage
  78. fi
  79. MEMORY="-m 1024m"
  80. LOCALHOST=`getMyIp`
  81. cmd="docker run -d -it -h $LOCALHOST $CONFIG --name=canal-admin $VOLUMNS $NET_MODE $PORTS $MEMORY canal/canal-admin"
  82. echo $cmd
  83. eval $cmd