createConfig.sh 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. #!/bin/bash -e
  2. SCRIPT_DIR=$(cd $(dirname ${BASH_SOURCE[0]}); pwd)
  3. p=$SCRIPT_DIR"/application_product.yml"
  4. t1=" "
  5. t2=" "
  6. t3=" "
  7. GBWebPort=$gb_WebPort
  8. GBSipPort=$gb_SIPPort
  9. GBExternalHost=$gb_Host
  10. GBSipDomain=$gb_domain
  11. GBSipID=$gb_id
  12. GBSipPASSWD=$gb_password
  13. GBExternalHost=$gb_externalHost
  14. #mediaSecret=$media_Secret
  15. echo "
  16. ZLM流媒体服务器信息
  17. zlmIP:$mediaIP
  18. streamIP:$streamIP
  19. sdpIP:$sdpIP
  20. webPort:$hookPort
  21. mediaId:$mediaId
  22. mediaSecret: $mediaSecret
  23. rtp端口范围:$rtpPortStart-$rtpPortEnd
  24. "
  25. echo "GBWebPort"
  26. finalMysqlHost=$mysqlHost;
  27. finalRedisHost=$redisHost;
  28. if [ "$redisHost" = "0.0.0.0" ];then
  29. finalRedisHost="127.0.0.1";
  30. fi
  31. if [ "$mysqlHost" = "0.0.0.0" ];then
  32. finalMysqlHost="127.0.0.1";
  33. fi
  34. echo "#hfy 国标平台配置文件" > "$p"
  35. echo "spring:" >> "$p"
  36. # redis 配置项
  37. echo "${t1}redis:" >> "$p"
  38. echo "${t2}#[必须修改] Redis服务器IP, REDIS安装在本机的,使用127.0.0.1:" >> "$p"
  39. echo "${t2}host: $finalRedisHost" >> "$p"
  40. echo "${t2}port: $redisPort" >> "$p"
  41. echo "${t2}database: $redisDB" >> "$p"
  42. echo "${t2}password: $redisPasswd" >> "$p"
  43. echo "${t2}timeout: 10000" >> "$p"
  44. echo "${t2}#[可选] 一个pool最多可分配多少个jedis实例" >> "$p"
  45. echo "${t2}poolMaxTotal: 1000" >> "$p"
  46. echo "${t2}#[可选] 一个pool最多有多少个状态为idle(空闲)的jedis实例" >> "$p"
  47. echo "${t2}poolMaxIdle: 500" >> "$p"
  48. echo "${t2}#[可选] 最大的等待时间(秒)" >> "$p"
  49. echo "${t2}poolMaxWait: 5" >> "$p"
  50. # [必选] jdbc数据库配置
  51. # redis 配置项
  52. echo "${t1}#[必选] jdbc数据库配置" >> "$p"
  53. echo "${t1}datasource:" >> "$p"
  54. echo "${t2}type: com.alibaba.druid.pool.DruidDataSource" >> "$p"
  55. echo "${t2}driver-class-name: com.mysql.cj.jdbc.Driver" >> "$p"
  56. echo "${t2}url: jdbc:mysql://$finalMysqlHost:$mysqlPort/$mysqlDB?useUnicode=true&characterEncoding=UTF8&rewriteBatchedStatements=true&serverTimezone=PRC&useSSL=true&allowMultiQueries=true&AllowPublicKeyRetrieval=true" >> "$p"
  57. echo "${t2}username: $mysqlUser" >> "$p"
  58. echo "${t2}password: $mysqlPasswd" >> "$p"
  59. echo "${t2}druid:" >> "$p"
  60. echo "${t3}initialSize: 10 # 连接池初始化连接数" >> "$p"
  61. echo "${t3}minIdle: 5 # 连接池最小空闲连接数" >> "$p"
  62. echo "${t3}maxWait: 60000 # 获取连接时最大等待时间,单位毫秒。配置了maxWait之后,缺省启用公平锁,并发效率会有所下降,如果需要可以通过配置useUnfairLock属性为true使用非公平锁。" >> "$p"
  63. echo "${t3}keepAlive: true # 连接池中的minIdle数量以内的连接,空闲时间超过minEvictableIdleTimeMillis,则会执行keepAlive操作。" >> "$p"
  64. echo "${t3}validationQuery: select 1 # 检测连接是否有效sql,要求是查询语句,常用select 'x'。如果validationQuery为null,testOnBorrow、testOnReturn、testWhileIdle都不会起作用。" >> "$p"
  65. echo "${t3}testWhileIdle: true # 建议配置为true,不影响性能,并且保证安全性。申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。" >> "$p"
  66. echo "${t3}testOnBorrow: false # 申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。" >> "$p"
  67. echo "${t3}testOnReturn: false # 归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。" >> "$p"
  68. echo "${t3}poolPreparedStatements: false # 是否開啟PSCache,並且指定每個連線上PSCache的大小" >> "$p"
  69. echo "${t3}timeBetweenEvictionRunsMillis: 60000 # 配置間隔多久才進行一次檢測,檢測需要關閉的空閒連線,單位是毫秒" >> "$p"
  70. echo "${t3}minEvictableIdleTimeMillis: 300000 # 配置一個連線在池中最小生存的時間,單位是毫秒" >> "$p"
  71. echo "${t3}filters: stat,slf4j # 配置监控统计拦截的filters,监控统计用的filter:sta, 日志用的filter:log4j" >> "$p"
  72. echo "${t3}useGlobalDataSourceStat: true # 合并多个DruidDataSource的监控数据" >> "$p"
  73. echo "${t3}connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=1000" >> "$p"
  74. echo "${t3}maxActive: 200 # 连接池最大连接数" >> "$p"
  75. echo "server:" >> "$p"
  76. echo "${t1}address: 0.0.0.0" >> "$p"
  77. echo "${t1}# 国标平台web端口" >> "$p"
  78. echo "${t1}port: $gb_WebPort" >> "$p"
  79. echo "${t1}# [可选] HTTPS配置, 默认不开启" >> "$p"
  80. echo "${t1}ssl:" >> "$p"
  81. echo "${t2}# [可选] 是否开启HTTPS访问" >> "$p"
  82. echo "${t2}enabled: false" >> "$p"
  83. echo "${t2}# [可选] 证书文件路径,放置在resource/目录下即可,修改xxx为文件名" >> "$p"
  84. echo "${t2}key-store: classpath:xxx.jks" >> "$p"
  85. echo "${t2}# [可选] 证书密码" >> "$p"
  86. echo "${t2}key-store-password: password" >> "$p"
  87. echo "${t2}# [可选] 证书类型, 默认为jks,根据实际修改" >> "$p"
  88. echo "${t2}key-store-type: JKS" >> "$p"
  89. echo "${t2}# 配置证书可以使用如下两项,如上面二选一即可" >> "$p"
  90. echo "${t2}# PEM 编码证书" >> "$p"
  91. echo "${t2}certificate: xx.pem" >> "$p"
  92. echo "${t2}# 私钥文件" >> "$p"
  93. echo "${t2}# certificate-private-key: xx.key" >> "$p"
  94. echo "sip:" >> "$p"
  95. echo "${t1}# [必须修改] 本机的IP, 必须是网卡上的IP,用于sip下协议栈监听ip,如果监听所有设置为0.0.0.0" >> "$p"
  96. echo "${t1}monitor-ip: 0.0.0.0" >> "$p"
  97. echo "${t1}# [必须修改] 本机的IP,zlm需要可与此ip通信" >> "$p"
  98. echo "${t1}ip: $GBExternalHost" >> "$p"
  99. echo "${t1}# [必须修改] 国标协议sip信令端口" >> "$p"
  100. echo "${t1}port: $GBSipPort" >> "$p"
  101. echo "${t1}# 根据国标协议6.1.2的规则制定的 10位数" >> "$p"
  102. echo "${t1}domain: $GBSipDomain" >> "$p"
  103. echo "${t1}# 平台id" >> "$p"
  104. echo "${t1}id: $GBSipID" >> "$p"
  105. echo "${t1}# sip认证密码" >> "$p"
  106. echo "${t1}password: $GBSipPASSWD" >> "$p"
  107. echo "${t1}# 设备心跳超时时间" >> "$p"
  108. echo "${t1}keepalive-timeout: 255" >> "$p"
  109. echo "${t1}# [可选] 国标级联注册失败,再次发起注册的时间间隔。 默认60秒" >> "$p"
  110. echo "${t1}register-time-interval: 60" >> "$p"
  111. echo "${t1}# [可选] 云台控制速度" >> "$p"
  112. echo "${t1}ptz-speed: 50" >> "$p"
  113. echo "${t1}# 是否存储alarm信息" >> "$p"
  114. echo "${t1}alarm: false" >> "$p"
  115. echo "${t1}# hfy ai图片存储位置" >> "$p"
  116. echo "${t1}mediaPath: mFile" >> "$p"
  117. echo "media:" >> "$p"
  118. echo "${t1}# zlm服务器唯一id,用于触发hook时区别是哪台服务器,general.mediaServerId" >> "$p"
  119. echo "${t1}id: $mediaId" >> "$p"
  120. echo "${t1}# zlm服务器的IP" >> "$p"
  121. echo "${t1}ip: $mediaIP" >> "$p"
  122. echo "${t1}# wvp在国标信令中使用的ip,此ip为摄像机可以访问到的ip, 置空使用 media.ip" >> "$p"
  123. echo "${t1}sdp-ip: $sdpIP" >> "$p"
  124. echo "${t1}# zlm服务器的hook所使用的IP, 默认使用sip.ip" >> "$p"
  125. echo "${t1}hook-ip: $mediaIP" >> "$p"
  126. echo "${t1}# zlm服务器的http.port" >> "$p"
  127. echo "${t1}http-port: $hookPort" >> "$p"
  128. echo "${t1}# [可选] 是否自动配置ZLM, 如果希望手动配置ZLM, 可以设为false, 不建议新接触的用户修改" >> "$p"
  129. echo "${t1}auto-config: true" >> "$p"
  130. echo "${t1}# zlm服务器的hook.admin_params=secret" >> "$p"
  131. echo "${t1}secret: $secret" >> "$p"
  132. echo "${t1}# [可选] zlm服务器的http.sslport, 置空使用zlm配置文件配置" >> "$p"
  133. echo "${t1}http-ssl-port:" >> "$p"
  134. echo "${t1}rtmp-port:" >> "$p"
  135. echo "${t1}rtmp-ssl-port:" >> "$p"
  136. echo "${t1}rtp-proxy-port:" >> "$p"
  137. echo "${t1}rtsp-port:" >> "$p"
  138. echo "${t1}rtsp-ssl-port:" >> "$p"
  139. echo "${t1}# [可选] zlm服务器的general.streamNoneReaderDelayMS" >> "$p"
  140. echo "${t1}stream-none-reader-delay-ms: 60000" >> "$p"
  141. echo "${t1}rtp:" >> "$p"
  142. echo "${t2}# 是否启用多端口模式, 开启后会在portRange范围内选择端口用于媒体流传输,建议q" >> "$p"
  143. echo "${t2}enable: true" >> "$p"
  144. echo "${t2}# 端口范围" >> "$p"
  145. echo "${t2}port-range: $rtpPortStart,$rtpPortEnd" >> "$p"
  146. echo "${t2}# 发送给设备所使用的端口范围" >> "$p"
  147. echo "${t2}send-port-range: $rtpPortStart,$rtpPortEnd" >> "$p"