Shell-vi替换指定文件中的内容-自动修改SolrLRU

【需求】:利用Shell脚本替换指定文件中的一段数字内容,需要进行模糊匹配。

【具体场景】:自动修改Solr下的LRU参数,并自动重启检索服务

  1. #!/bin/bash   
  2. #auther:Jacob Xu 20141102, create for up LRU parameter of Solr   
  3. echo “====================== set the configure for solr! ====================”  
  4. solrPath=/var/solr/apache-tomcat-7.0.39_ubuntu_29.2_analysis_7080/   
  5. echo “solrPath=”$solrPath  
  6. newLRU_Num=250   
  7. echo “newLRU_Num=”$newLRU_Num  
  8.   
  9. ################## configure solr.xml for solr!###################   
  10. rawSolrHome_norm=$solrPath“webapps/analysisNorm001/solrHome/”  
  11. rawSolrHome_spam=$solrPath“webapps/analysisSpam001/solrHome/”  
  12.   
  13. ##################################################################   
  14. if [ -d "/var/solr/apache-tomcat-7.0.39_ubuntu_29.2_analysis_7080" ]    
  15. then   
  16.         echo “begin to shutdown solr …”  
  17.         echo $solrPath“bin/shutdown.sh”  
  18.         bash $solrPath“bin/shutdown.sh”  
  19.         sleepTime=20   
  20.         for((;sleepTime>0;sleepTime–))   
  21.         do  
  22.                 printf “\rplease waiting ${sleepTime} seconds…”  
  23.                 sleep 1s   
  24.         done   
  25.         kill -9 $(pgrep ${solrPath} -f)   
  26.         printf “\n\r+++[ shutdown done, OK! ]+++\n\r”  
  27. else  
  28.         echo “Error! path +[${solrPath}]+ is not exist!”  
  29.         echo “+++[ Error:install failed! ]+++”  
  30.         exit 1   
  31. fi   
  32. rawLRUStr=“transientCacheSize\=\”[0-9]\{1,4\}\”"  
  33. newLRUStr=“transientCacheSize\=\”$newLRU_Num\”"  
  34. if [ -d $rawSolrHome_norm ]   
  35. then   
  36.         solrXmlFile=$rawSolrHome_norm“solr.xml”  
  37.         sed -i “s#${rawLRUStr}#${newLRUStr}#g” $solrXmlFile  
  38.         echo “has changed LRU num to ”${newLRU_Num}“ for norm solrHome!”  
  39. else    
  40.         echo “Warn: path +["$rawSolrHome_norm"]+ is not exist!”  
  41. fi   
  42. if [ -d $rawSolrHome_spam ]   
  43. then   
  44.         solrXmlFile=$rawSolrHome_spam“solr.xml”  
  45.         sed -i “s#${rawLRUStr}#${newLRUStr}#g” $solrXmlFile  
  46.         echo “has changed LRU num to ”${newLRU_Num}“ for spam solrHome!”  
  47. else    
  48.         echo “Warn: path +["$rawSolrHome_spam"]+ is not exist!”  
  49. fi   
  50.   
  51. # ++++++[startup]++++++++   
  52. echo “begin to startup solr …”  
  53. if [ -d "/var/solr/apache-tomcat-7.0.39_ubuntu_29.2_analysis_7080" ]    
  54. then   
  55. echo “bash /var/solr/apache-tomcat-7.0.39_ubuntu_29.2_analysis_7080/bin/startup.sh”  
  56. bash /var/solr/apache-tomcat-7.0.39_ubuntu_29.2_analysis_7080/bin/startup.sh   
  57. fi   
  58. sleepTime=10   
  59. for((;sleepTime>0;sleepTime–))   
  60. do  
  61.         printf “\rplease waiting ${sleepTime} seconds…”  
  62.         sleep 1s   
  63. done   
  64. printf “\n\r+++[ startup done, OK! ]+++\n\r”  
  65. #########################################################################  

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>