This commit is contained in:
@@ -1,11 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using Microsoft.AspNetCore.Http;
|
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Microsoft.AspNetCore.Authorization;
|
using Microsoft.AspNetCore.Authorization;
|
||||||
using Microsoft.EntityFrameworkCore;
|
|
||||||
using rockfishCore.Models;
|
using rockfishCore.Models;
|
||||||
using rockfishCore.Util;
|
using rockfishCore.Util;
|
||||||
|
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ dotnet publish -o ./../publish/
|
|||||||
|
|
||||||
3) COPY
|
3) COPY
|
||||||
Copy over to production server,
|
Copy over to production server,
|
||||||
.NET Core apps: /var/aspnetcore
|
.NET Core apps: /srv/coreapps
|
||||||
only need the .dll and the wwwroot folder contents,
|
only need the .dll and the wwwroot folder contents,
|
||||||
remember not to delete the folders on the server only replace their contents because there are file permissions set
|
remember not to delete the folders on the server only replace their contents because there are file permissions set
|
||||||
Backup the database
|
Backup the database
|
||||||
|
|||||||
@@ -12,10 +12,6 @@ namespace rockfishCore.Util
|
|||||||
{
|
{
|
||||||
public static class OpsDiagnostics
|
public static class OpsDiagnostics
|
||||||
{
|
{
|
||||||
private const int S3_EXPECTED_FILE_COUNT = 24;
|
|
||||||
public static readonly string[] S3_EXPECTED_BACKUP_FILE_PREFIXES =
|
|
||||||
{ "biz-docker-website-backup-", "biz-letsencryptbackup-", "biz-pecklist-db-backup-", "biz-rockfish-db-backup-",
|
|
||||||
"devops-docker-le-config-backup-","forum-backup-", "mail-svn-repo-backup-" };
|
|
||||||
private const string S3_SECRET_KEY = "iNwbHr+sK+9is2wmRjIax+rdyEjLNvWKJBYr7w4txkY";
|
private const string S3_SECRET_KEY = "iNwbHr+sK+9is2wmRjIax+rdyEjLNvWKJBYr7w4txkY";
|
||||||
private const string S3_ACCESS_KEY = "CMPAFDNX53OWPC55HBJ4";
|
private const string S3_ACCESS_KEY = "CMPAFDNX53OWPC55HBJ4";
|
||||||
private const string S3_HOST_ENDPOINT = "https://nyc3.digitaloceanspaces.com";
|
private const string S3_HOST_ENDPOINT = "https://nyc3.digitaloceanspaces.com";
|
||||||
@@ -103,31 +99,36 @@ namespace rockfishCore.Util
|
|||||||
|
|
||||||
public static bool VerifyBackups()
|
public static bool VerifyBackups()
|
||||||
{
|
{
|
||||||
bool ret = false;
|
string[] CriticalDailyBackupFilePrefixes = { "ayanova21-pecklist-db-backup-", "ayanova21-rockfish-db-backup-", "mail21-svn-backup-" };
|
||||||
|
string[] Level2ManualBackupFilePrefixes = { "forum21-backup-", "ayanova21-website-backup-" };
|
||||||
var SpacesFileNames = GetFileListFromSpacesBackupStorage();
|
var SpacesFileNames = GetFileListFromSpacesBackupStorage();
|
||||||
if (SpacesFileNames.Count != S3_EXPECTED_FILE_COUNT) return ret;
|
|
||||||
|
//Daily critical files
|
||||||
//get yesterday's date in the same format as the backup creates
|
//get yesterday's date in the same format as the backup creates
|
||||||
var ExpectedBackupDateString = DateTime.Today.AddDays(-1).ToString("yyMMdd");
|
var ExpectedBackupDateString = DateTime.Today.AddDays(-1).ToString("yyMMdd");
|
||||||
int foundMatches = 0;
|
int FoundCriticalMatches = 0;
|
||||||
foreach (string ExpectedFileName in S3_EXPECTED_BACKUP_FILE_PREFIXES)
|
foreach (string ExpectedFileName in CriticalDailyBackupFilePrefixes)
|
||||||
{
|
{
|
||||||
foreach (string FileName in SpacesFileNames)
|
foreach (string FileName in SpacesFileNames)
|
||||||
{
|
{
|
||||||
if (FileName.StartsWith(ExpectedFileName + ExpectedBackupDateString))
|
if (FileName.StartsWith(ExpectedFileName + ExpectedBackupDateString))
|
||||||
{
|
{
|
||||||
foundMatches++;
|
FoundCriticalMatches++;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (foundMatches == S3_EXPECTED_BACKUP_FILE_PREFIXES.Length)
|
//Website and Forum sb at least three of each, so just ensure there are three matches
|
||||||
{
|
//we dont' care about date for these ones, just prescence
|
||||||
ret = true;
|
int FoundLevel2Matches = 0;
|
||||||
}
|
foreach (string ExpectedFileName in Level2ManualBackupFilePrefixes)
|
||||||
|
foreach (string FileName in SpacesFileNames)
|
||||||
return ret;
|
if (FileName.StartsWith(ExpectedFileName))
|
||||||
|
FoundLevel2Matches++;
|
||||||
|
|
||||||
|
//should be one each of the critical and 3 each of the level2
|
||||||
|
return (FoundCriticalMatches == CriticalDailyBackupFilePrefixes.Length && FoundLevel2Matches == (Level2ManualBackupFilePrefixes.Length * 3));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ namespace rockfishCore.Util
|
|||||||
{
|
{
|
||||||
public static class RfVersion
|
public static class RfVersion
|
||||||
{
|
{
|
||||||
public const string NumberOnly="6.10";
|
public const string NumberOnly="6.11";
|
||||||
public const string Full = "Rockfish server " + NumberOnly;
|
public const string Full = "Rockfish server " + NumberOnly;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user