Update 44 files
- /Daily_Backup_review/database_s3_check.ps1 - /Daily_Backup_review/Get-StorageContainerContent.ps1 - /Daily_Backup_review/Global_Checks.ps1 - /Daily_Backup_review/list_table_within_databases.ps1 - /Daily_Backup_review/Start-AzureSQLExport.ps1 - /Daily_Backup_review/Start-BackupCheckBpScus.ps1 - /Daily_Backup_review/Start-BackupCheckBpWeu.ps1 - /Daily_Backup_review/Start-BackupCheckRoserAttachments.ps1 - /Daily_Backup_review/Start-BackupCheckRoserCloud.ps1 - /Daily_Backup_review/Start-BackupCheckTotal.ps1 - /Daily_Backup_review/Start-DatabaseExport.ps1 - /Daily_Backup_review/Start-PointInTimeRestore.ps1 - /Daily_Backup_review/list_databases_within_instances.py - /Daily_Citrix_VDA_and_Server_Utilization_review/Cloudwatch_review/cloudwatch_alarm_ap-southeast-2.json - /Daily_Citrix_VDA_and_Server_Utilization_review/Cloudwatch_review/Cloudwatch_review.ps1 - /Ansible/audit-netscaler-exp.yaml - /Ansible/concurrent-user.yaml - /Ansible/do-something.yaml - /Ansible/hello-world.yaml - /Ansible/p6-log-cleanup.yaml - /Ansible/Roser_DB_backup_one_off.yaml - /Ansible/test-sql.yaml - /Ansible/test-sql-double-creds.yaml - /RoserUsefull/access_bulk_servers.ps1 - /RoserUsefull/access_bulk_servers_cezar.ps1 - /RoserUsefull/Bulk_copy_files.ps1 - /RoserUsefull/Besfort_data.ps1 - /RoserUsefull/check_permissions_bulk_servers.ps1 - /RoserUsefull/Check-p6interface-checksum.ps1 - /RoserUsefull/compare_files.ps1 - /RoserUsefull/connections_parser.ps1 - /RoserUsefull/drop_rds_registry_key.ps1 - /RoserUsefull/EmergencyAccessRemote.ps1 - /RoserUsefull/Keycloak_TestConnection.ps1 - /RoserUsefull/Kickoff_disconnected_users.ps1 - /RoserUsefull/launch_jira.ps1 - /RoserUsefull/launch_jira_gui.ps1 - /RoserUsefull/ownership_taker_anonymized.ps1 - /RoserUsefull/purge_files.ps1 - /RoserUsefull/remove_local_profiles_PowerShell.PS1 - /RoserUsefull/retrieve_attachements.ps1 - /RoserUsefull/Send_patch_multiple_servers.ps1 - /RoserUsefull/Test-RSAAPI-BP.ps1 - /RoserUsefull/Linux_identify_big_files.sh
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
Param(
|
||||
$SubscriptionID,
|
||||
$ResourceGroupName,
|
||||
$StorageAccountName,
|
||||
$StorageContainerName,
|
||||
$Prefix='',
|
||||
[switch]$NonInteractive
|
||||
)
|
||||
|
||||
Login-AzAccount | Out-Null
|
||||
|
||||
if(-not $SubscriptionID) {
|
||||
$Subscription = Get-AzSubscription | Out-Gridview -passthru
|
||||
} else {
|
||||
$Subscription = Get-AzSubscription -SubscriptionId $SubscriptionID
|
||||
}
|
||||
Select-AzSubscription -Subscription $Subscription.SubscriptionId | Out-Null
|
||||
|
||||
if(-not $ResourceGroupName) {
|
||||
$ResourceGroup = Get-AzResourceGroup | Out-Gridview -passthru
|
||||
} else {
|
||||
$ResourceGroup = Get-AzResourceGroup -ResourceGroupName $ResourceGroupName
|
||||
}
|
||||
|
||||
if(-not $StorageAccountName ) {
|
||||
$StorageAccount = Get-AzStorageAccount -ResourceGroupName $ResourceGroup.ResourceGroupName | Out-GridView -PassThru
|
||||
} else {
|
||||
$StorageAccount = Get-AzStorageAccount -ResourceGroupName $ResourceGroupName -Name $StorageAccountName
|
||||
}
|
||||
|
||||
$StorageAccountKey = Get-AzStorageAccountKey -Name $Storageaccount.StorageAccountName -ResourceGroupName $ResourceGroup.ResourceGroupName
|
||||
$Context = New-AzStorageContext -StorageAccountName $StorageAccount.StorageAccountName -StorageAccountKey $StorageAccountKey[0].Value
|
||||
|
||||
if(-not $StorageContainerName) {
|
||||
$StorageContainer = Get-AzStorageContainer -Context $Context | Out-GridView -PassThru
|
||||
} else {
|
||||
$StorageContainer = Get-AzStorageContainer -Context $Context -Name $StorageContainerName
|
||||
}
|
||||
|
||||
$DRY = @"
|
||||
`$Parameters = @{
|
||||
subscription = '$($Subscription.SubscriptionID)'
|
||||
ResourceGroupName = '$($ResourceGroup.ResourceGroupName)'
|
||||
StorageAccountName = '$($StorageAccount.StorageAccountName)'
|
||||
StorageContainerName = '$($StorageContainer.Name)'
|
||||
}
|
||||
"@
|
||||
|
||||
Write-Verbose $DRY
|
||||
|
||||
Get-AzStorageBlob -Context $Context -Container $StorageContainer.Name -Prefix $Prefix
|
||||
@@ -0,0 +1,139 @@
|
||||
|
||||
begin {
|
||||
$global_parameters = @(
|
||||
@{
|
||||
name = 'Bp Scus'
|
||||
Cloud_provider = 'Azure'
|
||||
subscription = 'ac782c49-b833-4ca1-b632-5eb85281cc26'
|
||||
ResourceGroupName = 'rg-BP-shared-scus01'
|
||||
StorageAccountName = 'roserbpsqlbackupscus'
|
||||
StorageContainerName = 'backupcontainer'
|
||||
},
|
||||
@{
|
||||
name = 'Bp Weu'
|
||||
Cloud_provider = 'Azure'
|
||||
subscription = 'ac782c49-b833-4ca1-b632-5eb85281cc26'
|
||||
ResourceGroupName = 'rg-BP-shared-weu01'
|
||||
StorageAccountName = 'roserbpsqlbackupweu'
|
||||
StorageContainerName = 'backupcontainer'
|
||||
},
|
||||
@{
|
||||
name = 'Total'
|
||||
Cloud_provider = 'Azure'
|
||||
subscription = '40c3c7b3-1bd7-446b-b6a3-45ac84246fb9'
|
||||
ResourceGroupName = 'rg-Tot-resources-weu01'
|
||||
StorageAccountName = 'rosertotalbackup'
|
||||
StorageContainerName = 'backupcontainer'
|
||||
},
|
||||
@{
|
||||
name = 'RoserCloud'
|
||||
Cloud_provider = 'AWS'
|
||||
subscription = ''
|
||||
ResourceGroupName = 'operations_west-europe'
|
||||
StorageAccountName = 'rosercloud-sql-backup'
|
||||
StorageContainerName = 'rosercloud-rpsql02'
|
||||
}
|
||||
)
|
||||
|
||||
#date variables
|
||||
$Today_date = Get-Date -Format "yyyyMMdd"
|
||||
$Yesterday_date = (get-Date).AddDays(-1).ToString('yyyyMMdd')
|
||||
#clear the screen
|
||||
cls
|
||||
|
||||
#login into AZURE
|
||||
#Login-AzAccount | Out-Null
|
||||
Connect-AzAccount -TenantId 419c9123-a9c1-4908-9c5f-c2f34cc15973 | Out-Null
|
||||
}
|
||||
process {
|
||||
For ($occurences = 0; $occurences -lt $global_parameters.count; $occurences++) {
|
||||
#For ($occurences = 1; $occurences -lt 3; $occurences++) {
|
||||
if ($global_parameters[$occurences].Cloud_provider -eq "Azure") {
|
||||
Write-Host $global_parameters[$occurences].name -ForegroundColor Green
|
||||
$SubscriptionID = $global_parameters[$occurences].subscription
|
||||
$ResourceGroupName = $global_parameters[$occurences].ResourceGroupName
|
||||
$StorageAccountName = $global_parameters[$occurences].StorageAccountName
|
||||
$StorageContainerName = $global_parameters[$occurences].StorageContainerName
|
||||
$Blob = '*.bak'
|
||||
|
||||
|
||||
|
||||
#verification of SubscriptionID and assign it if required
|
||||
if (-not $SubscriptionID) {
|
||||
$Subscription = Get-AzSubscription | Out-Gridview -passthru
|
||||
}
|
||||
else {
|
||||
$Subscription = Get-AzSubscription -SubscriptionId $SubscriptionID
|
||||
}
|
||||
Select-AzSubscription -Subscription $Subscription.SubscriptionId | Out-Null
|
||||
|
||||
|
||||
#verification of ResourceGroupName and assign it if required
|
||||
if (-not $ResourceGroupName) {
|
||||
$ResourceGroup = Get-AzResourceGroup | Out-Gridview -passthru
|
||||
}
|
||||
else {
|
||||
$ResourceGroup = Get-AzResourceGroup -ResourceGroupName $ResourceGroupName
|
||||
}
|
||||
|
||||
|
||||
#verification of StorageAccountName and assign it if required
|
||||
if (-not $StorageAccountName ) {
|
||||
$StorageAccount = Get-AzStorageAccount -ResourceGroupName $ResourceGroup.ResourceGroupName | Out-GridView -PassThru
|
||||
}
|
||||
else {
|
||||
$StorageAccount = Get-AzStorageAccount -ResourceGroupName $ResourceGroupName -Name $StorageAccountName
|
||||
}
|
||||
$StorageAccountKey = Get-AzStorageAccountKey -Name $Storageaccount.StorageAccountName -ResourceGroupName $ResourceGroup.ResourceGroupName
|
||||
$Context = New-AzStorageContext -StorageAccountName $StorageAccount.StorageAccountName -StorageAccountKey $StorageAccountKey[0].Value
|
||||
|
||||
|
||||
#verification of StorageContainerName and assign it if required
|
||||
if (-not $StorageContainerName) {
|
||||
$StorageContainer = Get-AzStorageContainer -Context $Context | Out-GridView -PassThru
|
||||
}
|
||||
else {
|
||||
$StorageContainer = Get-AzStorageContainer -Context $Context -Name $StorageContainerName
|
||||
}
|
||||
|
||||
|
||||
|
||||
#start the action of listing
|
||||
$ContainerContent = Get-AzStorageBlob -Context $Context -Container $StorageContainer.Name -Blob $blob
|
||||
#display ContainerContent
|
||||
$ContainerContent | Out-GridView -Title $global_parameters[$occurences].name
|
||||
|
||||
#determine number of saves for today and yesterday and display them
|
||||
$result_today = $ContainerContent | Where-object { ($_.LastModified.DateTime -gt (Get-Date).Date) }
|
||||
$result_yesterday = $ContainerContent | Where-object { ($_.LastModified.DateTime -gt (Get-Date).AddDays(-1).Date) -and ($_.LastModified.DateTime -lt (Get-Date).Date) }
|
||||
|
||||
|
||||
Write-Host "number of saves today: "$result_today.count
|
||||
Write-Host "number of saves yesterday: "$result_yesterday.count
|
||||
}
|
||||
elseif ($global_parameters[$occurences].Cloud_provider -eq "AWS") {
|
||||
Write-Host $global_parameters[$occurences].name -ForegroundColor Green
|
||||
function Number_backups_s3 {
|
||||
param(
|
||||
[Parameter (Mandatory = $true)] [String]$string_day,
|
||||
[Parameter (Mandatory = $true)] [int]$date_wanted
|
||||
)
|
||||
$prefix = $global_parameters[$occurences].StorageContainerName
|
||||
$s3_result = aws s3api list-objects --bucket $global_parameters[$occurences].StorageAccountName --prefix "$prefix/$date_wanted/"
|
||||
$s3_result_converted_from_json = $s3_result | ConvertFrom-Json
|
||||
|
||||
Write-host "number of saves"$string_day$($s3_result_converted_from_json.Contents.count)
|
||||
|
||||
|
||||
}
|
||||
Number_backups_s3 -string_day "today: " -date_wanted $Today_date
|
||||
Number_backups_s3 -string_day "Yesterday: " -date_wanted $Yesterday_date
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
end {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
$subscription = '40c3c7b3-1bd7-446b-b6a3-45ac84246fb9'
|
||||
$ResourceGroupName = 'rg-Tot-resources-weu01'
|
||||
$StorageAccountName = 'rosertotalbackup'
|
||||
$StorageContainerName = 'backupcontainer'
|
||||
|
||||
$DatabaseName = 'p_rc_anv'
|
||||
|
||||
|
||||
$exportRequest = New-AzSqlDatabaseExport -ResourceGroupName $ResourceGroupName -ServerName $ServerName `
|
||||
-DatabaseName $DatabaseName -StorageKeytype $StorageKeytype -StorageKey $StorageKey -StorageUri $BacpacUri `
|
||||
-AdministratorLogin $creds.UserName -AdministratorLoginPassword $creds.Password
|
||||
@@ -0,0 +1,9 @@
|
||||
$Parameters = @{
|
||||
subscription = 'ac782c49-b833-4ca1-b632-5eb85281cc26'
|
||||
ResourceGroupName = 'rg-BP-shared-scus01'
|
||||
StorageAccountName = 'roserbpsqlbackupscus'
|
||||
StorageContainerName = 'backupcontainer'
|
||||
}
|
||||
|
||||
$ContainerContent = ./Get-StorageContainerContent.ps1 @Parameters | sort-object -Property LastModified -Descending
|
||||
$ContainerContent | Where-object { $_.Name -like '*.bak'} | Out-GridView
|
||||
@@ -0,0 +1,9 @@
|
||||
$Parameters = @{
|
||||
subscription = 'ac782c49-b833-4ca1-b632-5eb85281cc26'
|
||||
ResourceGroupName = 'rg-BP-shared-weu01'
|
||||
StorageAccountName = 'roserbpsqlbackupweu'
|
||||
StorageContainerName = 'backupcontainer'
|
||||
}
|
||||
|
||||
$ContainerContent = ./Get-StorageContainerContent.ps1 @Parameters | sort-object -Property LastModified -Descending
|
||||
$ContainerContent | Where-object { $_.Name -like '*.bak'} | Out-GridView
|
||||
@@ -0,0 +1,11 @@
|
||||
$Parameters = @{
|
||||
subscription = '40c3c7b3-1bd7-446b-b6a3-45ac84246fb9'
|
||||
ResourceGroupName = 'operations_west-europe'
|
||||
StorageAccountName = 'roserdataexchange'
|
||||
StorageContainerName = 'appdocs'
|
||||
}
|
||||
|
||||
|
||||
$ContainerContent = ./Get-StorageContainerContent.ps1 @Parameters -Prefix '_appdocs_log'
|
||||
$ViewContent = $ContainerContent | Sort-Object -Property LastModified -Descending | Select-Object -First 1 | Get-AzStorageBlobContent -Destination $env:TEMP
|
||||
notepad $ENV:TEMP\$($ViewContent.name)
|
||||
@@ -0,0 +1,14 @@
|
||||
$Parameters = @{
|
||||
subscription = '40c3c7b3-1bd7-446b-b6a3-45ac84246fb9'
|
||||
ResourceGroupName = 'operations_west-europe'
|
||||
StorageAccountName = 'roserdataexchange'
|
||||
StorageContainerName = 'backups'
|
||||
}
|
||||
|
||||
$date = (get-date).AddDays(-1)
|
||||
$Prefix = "{0}{1:D2}{2:D2}" -f $date.Year, $date.Month, $date.Day
|
||||
|
||||
|
||||
|
||||
$ContainerContent = ./Get-StorageContainerContent.ps1 @Parameters -Prefix $Prefix
|
||||
$ContainerContent | Where-object { $_.Name -like '*.bak'} | Out-GridView
|
||||
@@ -0,0 +1,20 @@
|
||||
$Parameters = @{
|
||||
subscription = '40c3c7b3-1bd7-446b-b6a3-45ac84246fb9'
|
||||
ResourceGroupName = 'rg-Tot-resources-weu01'
|
||||
StorageAccountName = 'rosertotalbackup'
|
||||
StorageContainerName = 'backupcontainer'
|
||||
}
|
||||
$ContainerContent = ./Get-StorageContainerContent.ps1 @Parameters | sort-object -Property LastModified -Descending
|
||||
$ContainerContent | Where-object { $_.Name -like '*.bak'} | Out-GridView
|
||||
|
||||
|
||||
$ParamAzSql = @{
|
||||
ResourceGroupName = $Parameters.ResourceGroupName
|
||||
}
|
||||
|
||||
'tot-managed-sql-production','tot-2020-sql-production' | ForEach-Object {
|
||||
$ParamAzSql.InstanceName = $_
|
||||
Get-AzSqlInstanceDatabase @ParamAzSql | Get-AzSqlInstanceDatabaseBackupShortTermRetentionPolicy
|
||||
} | Out-GridView
|
||||
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Export Azure Managed SQL Database to bacpac file
|
||||
.DESCRIPTION
|
||||
Uses sqlpackage.exe to export a database.
|
||||
#>
|
||||
|
||||
cd 'C:\Program Files\Microsoft SQL Server\150\DAC\bin'
|
||||
|
||||
$DBACredential = Get-Credential -UserName pgadmin -Message 'Backup Credential: Total SQL DBA (Azure) in Lastpass'
|
||||
$Database=''
|
||||
|
||||
if(-not $Database) {
|
||||
Write-Error "Please configure database"
|
||||
}
|
||||
|
||||
$Server='tcp:tot-2020-sql-acceptance.03ddfc49f186.database.windows.net,1433'
|
||||
|
||||
#sqlpackage.exe /Action:Export /ssn:tcp:MyOwnServer.database.windows.net,1433 /sdn:AdventureWorks /su:AdminUser /sp:AdminPassword1 /tf:C:\Temp\AW.bacpac /p:Storage=File
|
||||
./sqlpackage.exe /Action:Export /ssn:$server /sdn:$database /su:pgadmin /sp:$($DBACredential.GetNetworkCredential().Password) /tf:F:\export\$($Database).bacpac /p:Storage=File
|
||||
@@ -0,0 +1,85 @@
|
||||
Param(
|
||||
$SubscriptionID,
|
||||
$ResourceGroupName,
|
||||
$SourceInstanceName,
|
||||
$SourceDatabaseName,
|
||||
$DestinationInstanceName,
|
||||
$DestinationDatabaseName,
|
||||
$PointInTime,
|
||||
[switch]$NonInteractive
|
||||
)
|
||||
|
||||
|
||||
Write-Verbose "- $($PSBoundParameters | ConvertTo-Json)"
|
||||
|
||||
Login-AzAccount
|
||||
|
||||
if(-not $SubscriptionID) {
|
||||
$Subscription = Get-AzSubscription | Out-Gridview -passthru # Select your subscription
|
||||
} else {
|
||||
$Subscription = Get-AzSubscription -SubscriptionId $SubscriptionID
|
||||
}
|
||||
Select-AzSubscription -Subscription $Subscription.SubscriptionId
|
||||
|
||||
if(-not $ResourceGroupName) {
|
||||
$ResourceGroup = Get-AzResourceGroup | Out-Gridview -passthru # Select your resource group
|
||||
} else {
|
||||
$ResourceGroup = Get-AzResourceGroup -ResourceGroupName $ResourceGroupName
|
||||
}
|
||||
|
||||
if(-not $SourceInstanceName) {
|
||||
$SourceInstance = Get-AzSqlInstance | Out-Gridview -Passthru # Select the source instance for the restore
|
||||
} else {
|
||||
$SourceInstance = Get-AzSqlInstance -Name $SourceInstanceName
|
||||
}
|
||||
|
||||
if(-not $DestinationInstanceName) {
|
||||
$DestinationInstance = Get-AzSqlInstance | Out-GridView -PassThru # Select the Target instance for the restore
|
||||
} else {
|
||||
$DestinationInstance = Get-AzSqlInstance -Name $DestinationInstanceName
|
||||
}
|
||||
|
||||
if(-not $SourceDatabaseName) {
|
||||
$SourceDatabase = Get-AzSqlInstanceDatabase -InstanceName $SourceInstance.ManagedInstanceName -ResourceGroupName $ResourceGroup.ResourceGroupName | Out-GridView -PassThru # Select Database to restore
|
||||
} else {
|
||||
$SourceDatabase = Get-AzSqlInstanceDatabase -InstanceName $SourceInstance.ManagedInstanceName -Name $SourceDatabaseName -ResourceGroupName $ResourceGroup.ResourceGroupName
|
||||
}
|
||||
|
||||
if(-not $DestinationDatabaseName) {
|
||||
$DestinationDatabaseName = read-host -Prompt 'Destination DB name'
|
||||
}
|
||||
|
||||
if(-not $PointInTime) {
|
||||
$PointInTime = Get-Date
|
||||
}
|
||||
|
||||
|
||||
$ParamRestoreAzSqlinstanceDatabase = @{
|
||||
FromPointInTimeBackup = $true
|
||||
InstanceName = $SourceInstance.ManagedInstanceName
|
||||
Name = $SourceDatabase.Name
|
||||
ResourceGroupName = $ResourceGroup.ResourceGroupName
|
||||
PointInTime = $PointInTime
|
||||
TargetInstanceDatabaseName = $DestinationDatabaseName
|
||||
TargetResourceGroupName = $ResourceGroup.ResourceGroupName
|
||||
TargetInstanceName = $DestinationInstance.ManagedInstanceName
|
||||
}
|
||||
|
||||
Write-Verbose @"
|
||||
@Param = @{
|
||||
`$SubscriptionID = '$($Subscription.SubscriptionID)'
|
||||
`$ResourceGroupName = '$($ResourceGroup.ResourceGroupName)'
|
||||
`$SourceInstanceName = '$($SourceInstance.ManagedInstanceName)'
|
||||
`$SourceDatabaseName = '$($SourceDatabase.Name)'
|
||||
`$DestinationInstanceName = '$($DestinationInstance.ManagedInstanceName)'
|
||||
`$DestinationDatabaseName = '$($DestinationDatabaseName)'
|
||||
}
|
||||
"@
|
||||
|
||||
|
||||
if(-not $NonInteractive) {
|
||||
write-warning "$($ParamRestoreAzSqlinstanceDatabase | ConvertTo-JSon)"
|
||||
Write-Warning "Continue with Restore?" -WarningAction Inquire
|
||||
}
|
||||
|
||||
Restore-AzSqlinstanceDatabase @ParamRestoreAzSqlInstanceDatabase
|
||||
@@ -0,0 +1,27 @@
|
||||
#$RDS_instances = aws rds describe-db-instances| ConvertFrom-Json
|
||||
#$RDS_instances = aws rds describe-db-instances --db-instance-identifier rosermigration| ConvertFrom-Json
|
||||
$RDS_instances = aws rds describe-db-instance-automated-backups | ConvertFrom-Json
|
||||
|
||||
#date variables
|
||||
$Today_date = Get-Date -Format "yyyyMMdd"
|
||||
$Yesterday_date = (get-Date).AddDays(-1).ToString('yyyyMMdd')
|
||||
|
||||
foreach ($DBInstance in $RDS_instances.DBInstanceAutomatedBackups) {
|
||||
Write-Host "DB : "$DBInstance.DBInstanceIdentifier -ForegroundColor Green
|
||||
function Number_backups_s3 {
|
||||
param(
|
||||
[Parameter (Mandatory = $true)] [String]$string_day,
|
||||
[Parameter (Mandatory = $true)] [int]$date_wanted
|
||||
)
|
||||
$prefix = $DBInstance.DBInstanceIdentifier
|
||||
#$s3_result = aws s3api list-objects --bucket rosercloud-sql-backup --prefix "$prefix/$date_wanted/"
|
||||
$s3_result = aws s3api list-objects --bucket rosercloud-sql-backup --query "Contents[?contains(Key, ``$prefix/$Today_date``) == ``true``]"| ConvertFrom-Json
|
||||
#$s3_result_converted_from_json = $s3_result
|
||||
|
||||
Write-host "number of saves"$string_day$($s3_result.Contents.count)
|
||||
|
||||
|
||||
}
|
||||
Number_backups_s3 -string_day "today: " -date_wanted $Today_date
|
||||
Number_backups_s3 -string_day "Yesterday: " -date_wanted $Yesterday_date
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
"""
|
||||
Connects to a SQL database using pyodbc
|
||||
"""
|
||||
import pyodbc
|
||||
from os import path
|
||||
import json
|
||||
|
||||
SERVER = 'tot-2020-sql-acceptance.privatelink.03ddfc49f186.database.windows.net'
|
||||
DATABASE = 'dba_admin'
|
||||
USERNAME = 'pgadmin'
|
||||
PASSWORD = '6^_przWQ$?Ve7,n9'
|
||||
|
||||
|
||||
filename = 'database_description.json'
|
||||
|
||||
connectionString = f'DRIVER={{ODBC Driver 17 for SQL Server}};SERVER={SERVER};DATABASE={DATABASE};UID={USERNAME};PWD={PASSWORD}'
|
||||
|
||||
conn = pyodbc.connect(connectionString)
|
||||
|
||||
Exclude_databases=["master","tempdb","model","msdb"]
|
||||
|
||||
SQL_QUERY = """
|
||||
SELECT name
|
||||
FROM sys.databases;
|
||||
"""
|
||||
|
||||
list_database_name = []
|
||||
cursor = conn.cursor()
|
||||
cursor.execute(SQL_QUERY)
|
||||
|
||||
records = cursor.fetchall()
|
||||
for r in records:
|
||||
if not(Exclude_databases.count(r[0])):
|
||||
print(r[0])
|
||||
dict_database_name={'Name':r[0]}
|
||||
list_database_name.append(dict_database_name)
|
||||
|
||||
dict_global={"Images": list_database_name}
|
||||
# Write to File
|
||||
with open(filename, 'w') as json_file:
|
||||
json.dump(dict_global, json_file, indent=4)
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
$AttachmentPath = "C:\Users\cvoicu\Desktop\"
|
||||
|
||||
$QueryFmta= "SELECT name FROM sys.databases where name like 'coconsole_%' and name != 'coconsole_api_database'"
|
||||
|
||||
$coconsole_db= Invoke-Sqlcmd -ServerInstance sql1 -Database 'master' -Query $QueryFmta
|
||||
|
||||
foreach( $database in $coconsole_db ) {
|
||||
write-host $database.name
|
||||
$QueryFmt= "select * from S_updates"
|
||||
|
||||
$db= $database.name
|
||||
|
||||
Invoke-Sqlcmd -ServerInstance sql1 -Database $db -Query $QueryFmt | Export-CSV $AttachmentPath\$db.csv
|
||||
}
|
||||
Reference in New Issue
Block a user