crawler-etl.sh 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. #/bin/bash
  2. svr_name=crawler-etl
  3. deploy() {
  4. ips=($@)
  5. for i in "${!ips[@]}"
  6. do
  7. if [ $i -gt 1 ]; then
  8. ip=${ips[$i]}
  9. echo $ip "发布中..."
  10. scp /home/server-deploy/crawler-etl.sh $ip:/home/crawler-etl.sh
  11. ssh $ip "bash /home/crawler-etl.sh restart $2"
  12. echo $ip "发布完成!"
  13. fi
  14. done
  15. }
  16. start() {
  17. CID=$(docker ps -a | grep $svr_name | awk '{print $1}')
  18. if [ ! $CID ]; then
  19. docker run -d --restart=always --name $svr_name -P registry-vpc.cn-hangzhou.aliyuncs.com/stuuudy/crawler-etl-server:$1
  20. echo "$svr_name 启动"
  21. else
  22. echo "$svr_name 容器已经存在"
  23. fi
  24. }
  25. stop() {
  26. CID=$(docker ps -a | grep $svr_name | awk '{print $1}')
  27. if [ ! $CID ]; then
  28. echo "$svr_name 没有运行"
  29. else
  30. echo "正在停止 $svr_name "
  31. docker stop $CID
  32. docker rm $CID
  33. fi
  34. }
  35. update() {
  36. CID=$(docker ps -a | grep $svr_name | awk '{print $1}')
  37. IMAGE_ID=$(docker images | grep $svr_name | awk '{print $3}')
  38. if [ ! $CID ]; then
  39. echo "本地无镜像,直接pull"
  40. docker pull registry-vpc.cn-hangzhou.aliyuncs.com/stuuudy/crawler-etl-server:$1
  41. else
  42. echo "停止本地容器->删除本地镜像->pull镜像"
  43. docker stop $CID
  44. docker rm $CID
  45. docker rmi $IMAGE_ID
  46. docker pull registry-vpc.cn-hangzhou.aliyuncs.com/stuuudy/crawler-etl-server:$1
  47. fi
  48. }
  49. case "$1" in
  50. 'deploy')
  51. deploy $@
  52. ;;
  53. 'start')
  54. start $2
  55. ;;
  56. 'stop')
  57. stop
  58. ;;
  59. 'restart')
  60. stop
  61. start $2
  62. ;;
  63. 'update')
  64. update $2
  65. start $2
  66. ;;
  67. *)
  68. echo"Usage: $0 {start|stop|restart|update}"
  69. exit 1
  70. ;;
  71. esac