PowerShell: Birden çok yapılandırma dosyasında Port ve URL’u hızlı ve doğru değiştirin
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.
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!