crawler-etl.sh 1.7 KB

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