PowerShell: Change Port and URL quickly and accurately in multiple configuration files

PowerShell: Birden çok yapılandırma dosyasında Port ve URL’u hızlı ve doğru değiştirin

PowerShell_ISE

TR: Eğer bir çok uluslu bir şirkette altyapı yönetiyorsanız, bir küçük dosyayı tek tek düzenlemeniz gerekebilir. çünkü şirketin bir çok ülkeye hizmet veren bir web sayfası olacaktır. web sayfasının küçük ayar dosyası olacaktır. Bu dosyaları tek tek açıp düzenlemeye gerek yok. tüm ayarlamaları yapan bir script ile her ayarı hızlı ve doğru bir şekilde yapabilirsiniz.

EN: If you are managing the infrastructure in a multinational corporation, you may need to edit a small file one by one. because the company will have a web page that serves many countries. web page will be the small setting file. There is no need to open these files individually. With a script that makes all the adjustments you can make every setting quickly and accurately.

2018-09-05_16-47-18

TR: Her ülke için ayrı ayrı olan ayar dosyamız aşağıdaki gibi olsun. Aşağıdaki dosyadan 20 tane olduğunu düşünelim.

EN: We have our setup file for each country as follows. Let’s say you have 20 of the files below.

 

Config file name is “configAdapter”

 

AR.FALLBACK=testpage.amazonaws.com

AR.FALLBACK_PORT=15610

AR.HOST=testpage.amazonaws.com

AR.PORT=15610

AR.GS_HOST=testpage.amazonaws.com

AR.GS_PORT=15610

AR.GS_FALLBACK_HOST=testpage.amazonaws.com

AR.GS_FALLBACK_PORT=15610

AR.GS_DATABASEMATCH=TRADE_AR

AR.STAT_HOST=testpage.amazonaws.com

AR.STAT_PORT=15610

AR.STAT_TIMEZONE=America/New_York

AR.DATABASEMATCH=TRADE_AR

AR.QUERY_TERMS_OPERATOR=AND

AR.GLOBAL_SORT=Relevance

AR.GUIDED_SORT=AutnRank+Relevance+GS_KEYWORDS:alphabetical

AR.CAT_WRK_INSIGHTS=0

AR.GLOBAL_SORT_ORDER=before

AR.IDOL_VERSION=11

AR.CAT_WRK_CAMPAIGN=0

AR.MINSCORE=0

AR.QMS=false

AR.QMS_HOST=testpage.amazonaws.com

AR.QMS_PORT=15610

AR.QMS_PROMOTIONS_COUNT=3

 

 

TR: Biz sadece URL’i portları test sisteminden canlı sisteme çevirmek istiyoruz.

Aşağıdaki gibi ülke kodlarımız olsun. Bu ülke kodlarını US.txt olarak kaydedelim.

 

EN: We only want to convert the URL from the test system to the live system.

Get our country codes as follows. I record these country codes as US.txt.

 

US.txt

ar

br

ca

cl

co

ib

pe

us

ut

 

TR: Eğer benim gibi kıtaları ayrı ayrı yapılandırmanız gerekiyor ise aşağıdaki gibi ikinci bir ülke kodu dosyası oluşturup kaydedebilirsiniz.

EN: If you need to configure the continents separately like me, you can create and save a second country code file as follows.

 

PA.txt

au

cn

hk

in

id

jp

kz

kr

my

nz

ph

sg

tw

th

vn

 

# Script starting here

# Find the zone

$path = “C:\web_root\sites\”

 

#GAME URLs

$UrlOldGame = “testpage.amazonaws.com”

$UrlNewGame = “mysite.amazonaws.com”

 

#US Ports

$PortOldUS = “PORT=15610”

$PortNewUS = “PORT=15110”

 

# Find the country codes

$CountryCodes = Get-Content ‘C:\script\US.txt’

#$CountryCodes = “ar” #for test. I only add a country code here

 

# Find the lines that will be changed

$FullPath = $CountryCodes.ForEach{$path+$_}

$FullPath

 

$AllPorts = $FullPath.ForEach{Get-ChildItem -Path $PSItem -Include configSearchGSSAdapter -Recurse |

Select-String -Pattern $PortOldUS}

$AllPorts | foreach {

Write-Host “Next line “$_

$d=(($_.Line).Split(“.”)[0])

Write-Host “Next country code “$d

$e=(($_.Line).Split(“=”)[1])

Write-Host “Next old port “$e

 

$filepath=Split-Path -Path $_

Write-Host “File path “$filepath

 

$pathandfile=$filepath+”\configSearchGSSAdapter”

Write-Host “Next path and file “$pathandfile

 

Write-Host ” Script will replace: ” $PortOldUS -ForegroundColor Red ” by ” $PortNewUS

 

# !! Change Ports !!

(Get-Content $pathandfile) -replace $PortOldUS, $PortNewUS | Set-Content $pathandfile

Write-Host “Port line Changed: ” $PortOldUS -ForegroundColor Green ” by ” $PortNewUS

 

}

 

$ServiceUrl = $fullpath.ForEach{Get-ChildItem -Path $PSItem -Include configSearchGSSAdapter -Recurse |

Select-String -Pattern $UrlOldUS}

$ServiceUrl | foreach {

Write-Host “Next line “$_

$b=(($_.Line).Split(“.”)[0])

Write-Host “Next country code “$b

$c=(($_.Line).Split(“=”)[1])

Write-Host “Next old url “$c

 

$filepath=Split-Path -Path $_

Write-Host “File path “$filepath

 

$pathandfile=$filepath+”\configSearchGSSAdapter”

Write-Host “Next path and file “$pathandfile

Write-Host ” Script will replace: ” $c -ForegroundColor Red ” by ” $UrlNewUS

# !! Change URL !!

(Get-Content $pathandfile) -replace $UrlOldUS, $UrlNewUS | Set-Content $pathandfile

Write-Host ” URL Changed: ” $c -ForegroundColor Green ” by ” $UrlNewUS

 

}

 

(New Config File)

configSearchGSSAdapter

 

This is the result of the config file after script running

AR.FALLBACK=mysite.amazonaws.com

AR.FALLBACK_PORT=15110

AR.HOST=mysite.amazonaws.com

AR.PORT=15110

AR.GS_HOST=mysite.amazonaws.com

AR.GS_PORT=15110

AR.GS_FALLBACK_HOST=mysite.amazonaws.com

AR.GS_FALLBACK_PORT=15110

AR.GS_DATABASEMATCH=TRADE_AR

AR.STAT_HOST=mysite.amazonaws.com

AR.STAT_PORT=15110

AR.STAT_TIMEZONE=America/New_York

AR.DATABASEMATCH=TRADE_AR

AR.QUERY_TERMS_OPERATOR=AND

AR.GLOBAL_SORT=Relevance

AR.GUIDED_SORT=AutnRank+Relevance+GS_KEYWORDS:alphabetical

AR.CAT_WRK_INSIGHTS=0

AR.GLOBAL_SORT_ORDER=before

AR.IDOL_VERSION=11

AR.CAT_WRK_CAMPAIGN=0

AR.MINSCORE=0

AR.QMS=false

AR.QMS_HOST=mysite.amazonaws.com

AR.QMS_PORT=15110

AR.QMS_PROMOTIONS_COUNT=3

 

P.S: URLs and Ports are not correct, I changed for this post.

 

Enjoy!

Leave a Reply

Your email address will not be published. Required fields are marked *