Appoxo

joined 1 year ago
 

Script is made to control Veeam VBR
Thanks for taking a look at my massive feature creep ;)

<#
    .SYNOPSIS
        Startet ein Veeam VBR Job

    .DESCRIPTION
        Startet einen VBR Job basierend auf den Namen.
        Ursprünglicher Zweck war ein Verknüpfung von Jobs (z.B. als Pre-Execution Skript)

    .PARAMETER JobName
        Job-Name des Backup Jobs

    .PARAMETER JobType
        Typ des Backup Jobs
        Erlaubte Typen: VAW, VAL, VMware,
        Nicht erlaubte: Typen: HyperV, PVE

        $Get-VBRBackup | Select-Object -Property Name,TypeToString,JobType
        Backup              Pretty                  Verbose                 Typ im Skript   Notizen
        ########################################################################################################
        Backup Copy Job     Backup Copy             SimpleBackupCopyPolicy  /               /
        VAW Managed SRV     Windows Agent Backup    EpAgentBackup           VAW             CMDlet deprecated for Agent backups
        VAW Managed PC      Windows Agent Policy    EpAgentPolicy           VAW             CMDlet deprecated for Agent backups
        VAL Managed SRV     Linux Agent Backup      EpAgentBackup           VAL             CMDlet deprecated for Agent backups
        VAL Managed PC      Linux Agent Policy      EpAgentPolicy           VAL             CMDlet (probably) deprecated for Agent backups # UNGETESTET WERTE! 
        Proxmox VE          Proxmox Backup          VmbApiPolicyTempJob     PVE             Nicht nutzbar mit Powershell via Start-VBRJob
        VMware              VMware Backup Backup    Backup                  VMware
        Hyper-V

    .EXAMPLE
        Start-VeeamJob.ps1 -JobName 
        passes F1234567-1abc-1234-ab1c-1a2345b6c78d to $JobName
        
    .NOTES
        Author  : Appoxo
        Version : 2.0
    
    .LINK
        Job-ID auslesen:
            Get-VBRComputerBackupJob | Where-Object Name -CLike "*Name*" | Select-Object -Property Id, Name
#>

[CmdletBinding()]
Param(
    [Parameter(Mandatory = $true,
    HelpMessage = "Enter Job-Name of the VBR-Job")]
    [String]
    $JobName,

    [Parameter(Mandatory = $true,
    HelpMessage = "Art des VBR-Jobs. Die Bezichnung ist NICHT canse-sensitiv!")]
    [string]
    $JobType
)

Begin {
    Write-Host "Script started successfully"
    $ExitCode = 0  

    #TimeStamp Logging:
    function Get-TimeStamp {return "{0:yy/MM/dd} {0:HH:mm:ss}" -f (Get-Date)}
    
    <#
    #Debug Values:
    $JobName = "L1 Backup Appoxo-PC2 (Games)"
    $JobType = "VAW"
    #>

    # Variablen
    $workingDir = "C:\Skripte\SkriptLogs"
    $log = "$($workingDir)\Log-StartVeeamJob.log"
    $JobDetails = Get-VBRBackup | Where-Object Name -EQ "$($JobName)"
    $timeout = 9

    # Vorbereitung
    if ($JobType -in @("VAW","VAL","VMware")){
        Write-Host "Valid backup type selected"
        $JobTypUnbestimmt = 0
    }
    else {
        Write-Host "Invalid backup type selected. Please choose something else :)"
        $ExitCode = 1
        exit $ExitCode
    }

    if (Test-Path -Path $workingDir) {
    } else {
        New-Item -ItemType Directory -Path "$workingDir"
    }

    if (-not (Test-Path -Path $log -PathType Leaf)) {
        New-Item -ItemType file -Path $log
        Add-Content -Path $log "Log zur Überprüfung der Start von VBR-Jobs"
    }
}

Process {
    Write-Host "You passed the following information:"
    $data = @([PSCustomObject]@{"Job Details"="$($JobDetails.Name)"; "Selected Job Type"="$($JobType)"})
    $data | Format-Table -AutoSize
    Write-Host "The following Job-ID was found for this job: $($JobDetails.JobId)"

    Write-Host "If there is an error please abort NOW." 
    while ($timeout -gt 0) {
        Write-Host -NoNewline "`rThe script starts in $($timeout)"
        Start-Sleep -Seconds 1
        $timeout--
    }
    Write-Host "Starting script now!"
    Write-Output "$(Get-TimeStamp) Start des Backup Job Skripts. Für den Job '$($JobDetails.Name)' wurde die Job-ID $($JobDetails.JobId) gefunden!" | Add-Content -Path $log

    try{
        $startTime = Get-Date
        Write-Host "Validating input... This may take a while"
        if((($JobType -in @("VAW","VAL"))) -AND (($JobDetails.JobType -in @("EpAgentBackup","EpAgentPolicy")))) {
            Write-Host "Valid backup type '$($JobDetails.TypeToString)' was found. Starting now!"
            Start-VBRComputerBackupJob -Job $JobName | Select-Object -OutVariable JobResult
        }
        elseif (($JobType -in @("VMware")) -AND (($JobDetails.JobType -in @("Backup")))) {
            Write-Host "Valid backup type '$($JobDetails.TypeToString)' was found. Starting now!"
            Start-VBRJob -Job $JobName | Select-Object -OutVariable JobResult
        }
        elseif (($JobType -in @("PVE")) -AND (($JobDetails.JobType -in @("VmbApiPolicyTempJob")))) {
            Write-Host "Der Job des Typs $JobType ist aktuell nicht implementiert"
            $ExitCode = 1
            exit $ExitCode
            <#
            Write-Host "Valid backup type '$($JobDetails.TypeToString)' was found. Starting now!"
            Start-VBRJob -Job $JobName | Select-Object -OutVariable JobResult
            #>
        }
        else {
            Write-Host "Invalid backup type '$($JobDetails.TypeToString)' was found. Please restart the script!"
            Write-Output "$(Get-TimeStamp) Bestimmung des Typs für den Job '$($JobDetails.Name)' nicht erfolgreich. Angegeben wurde '$($JobType)'" | Add-Content -Path $log
            $ExitCode = 1
            $JobTypUnbestimmt = 1
        }

        # Job Result report
        if(($JobTypUnbestimmt -EQ 0) -AND ($JobResult.State -EQ "Stopped") -AND ($JobResult.Result -EQ "Success")){
            Write-Host "Execution of the Job '$($JobName) was successful"
            Write-Output "$(Get-TimeStamp) Backup Job $($JobDetails.Name) erfolgreich ausgeführt" | Add-Content -Path $log
            $ExitCode = 0
        } else{
            Write-Host "Execution of the Job '$($JobName) encountered an error. Please check the VBR-Console"
            Write-Output "$(Get-TimeStamp) Fehler beim ausführen vom Backup Job '$($JobDetails.Name)'" | Add-Content -Path $log
            $ExitCode = 1
        }
        #Stats
        $endTime = Get-Date
        $executionTime = $endTime - $startTime
    } catch {
        Write-Host "Something went wrong during execution"
        Write-Host $_  # This prints the actual error
        Write-Output "$(Get-TimeStamp) Error: $($_)" | Add-Content -Path $log
        $ExitCode = 1 
    }
}

End {
    Write-Output "$(Get-TimeStamp) Skript abgeschlossen für $($JobDetails.Name) Job-ID $($JobDetails.Id)" | Add-Content -Path $log
    Write-Host "Script ended."
    $seconds = "{0:N2}" -f $executionTime.TotalSeconds
    $minutes = "{0:N2}" -f ($executionTime.TotalSeconds / 60)
    Write-Host "Time for stats! The script took $($seconds) seconds or $($minutes) minutes)"
    exit $ExitCode
}
[–] [email protected] 1 points 16 hours ago

One of the best features is hiding results from shit sites

I do that with the Firefox plugin "Block or Highlight Search Engine Results" from pistom (on github).
Upside: I can see what was hidden in case I need that and it really helps with visibility.

[–] [email protected] 0 points 1 day ago* (last edited 1 day ago) (1 children)

Spoiler didnt work ;)

[–] [email protected] 2 points 1 day ago

To me NoMansSky feels like singleplayer Minecraft but with planets and tasks/missions.
So if you arent fond of that, I'm afraid it's not for you. You can play witg randoms but I would say this isnt the norm.

[–] [email protected] 2 points 1 day ago (1 children)

Especially bras

Excuse if I am mistaken but isnt it the whole point to be snug while not being too small and bordering on squeezing you?

[–] [email protected] 2 points 1 day ago

Same here as a European. Small shoulders but medium torso. Luckily it's not too bad.

[–] [email protected] 6 points 1 day ago

Sizing and needing to calculate.
Luckily I found a shop (online) that is nice to wear and has no bs sizing.
And it shows the real employees wearing the stuff.

[–] [email protected] 6 points 1 day ago (2 children)

An agile pot?
Will it run from me while I try to put ingredients in it?

[–] [email protected] 3 points 2 days ago* (last edited 2 days ago)

They are usually no-name brand swag items
Edit: And your picture is USB 2.0

[–] [email protected] 2 points 3 days ago

my pleasure if I can help :)

[–] [email protected] 1 points 3 days ago* (last edited 3 days ago)

If you want more recommendation for german yt content, what are some general interests if you?
For example comedic story telling, memes, game/talk shows, technical etc.?

Edit:

And then sometimes when I’m talking I try to directly translate what I’m saying in my head, and assuming I know the words, I usually fuck up the order, article, or tense.

We have two foreign colleagues at work. One being from Syria and one from Russia. Both at the time of starting broke relatively broken German but thwy improved soo much since I met them. One of them did go to a german language school. And even after 6 years some errors are made. Nothing to worry about if you can get the idea across.

[–] [email protected] 2 points 3 days ago

Many (most?) residential internet service providers do not allow self hosting websites on their network and they'd be dynamic IP anyway though you could work around that somewhat with dynamic DNS since you're going to need to purchase a domain name and point it to somewhere anyway.

That's what I already do.
cloudflare-ddns, own domain and done. Except for reliability at night where the ISP reboots my DSL connection at 4am.

 

 

Background

Hello fellow self-hosters and homelabbers, A few weeks ago I was able to fill my new NAS with the proper hardware I needed to expand on my earlier setup.
Due to the new capabilities I also wanted a fresh restart. But the more I think about doing one thing, the more I hit other road blocks amd think about doing Y.
So I wanted to ask how you would solve my goal.

My current (main) setup:

  • Hardware: 11th Gen i5 Nuc with a 8TB HDD attached via USB
  • OS: Debian 11
  • Software: OMV6 for management and Docker for a diverse set of containers
  • Current containers: HortusFox + MongoDB, *arrs-stack, Jellyfin, uptime kuma, unifi network application + mariaDB, traefik, wallos

Current available hardware for use:

1x 13th gen i3 NUC running Proxmox 8.2
1x 11th gen i5 NUC
1x uGreen DXP4800+ NAS with 4x15TB HDDs in Raidz2. The OS is TrueNAS scale

My plans:

  • NAS storage made accessible via NFS to the proxmox VE.
  • NAS storage mainly planned as mass-storage for Jellyfin.
  • Reimage my 11th gen NUC with a bare-metal Debian install for Docker.
    (I will not virtualize on the 11th Gen NUC because I can't pass the iGPU to the VM and not really interested in LXC containers)

Problems and questions I have at this moment:

1: Should I do a media-storage VM only utilized for serving media and do the computing on another VM or do a general VM for both?

  • Upside to an all-in-one VM: Less problems with serving storage between many different nodes and keeping it organized.
    Upside to specialized VMs (storage & compute VM): Better focus on ressources like CPU and RAM.
    2: Should I place my whole docker stack again on the 11th Gen NUC or place the stacks in their own VM(s)? Example:
    service stack in service-focused VM
    media-focused stack in media VM (which also serves the files for jellyfin)
    Jellyfin bare-metal/dockerized on NUC 11th Gen

I hope someone can maybe help me untangle my grown mess and plans. My skills with Linux are not very deep and very beginner level. If you are willing to help please be patient with stupid questions.

If you have any better solutions, pointers to research, (blog) articles on architecting such solutions, examples how you solved storage/management or just willing to help me, I'd be very grateful :)

 

So often they go end of sale. Once gone and restocked I will hoard it.

190
Light Eye of Stuttgart21 [OC] (live.staticflickr.com)
submitted 5 months ago* (last edited 5 months ago) by [email protected] to c/[email protected]
 

This was a guided tour of the future main station in Stuttgart called Stuttgart21.

More pictures: https://imgur.com/a/8QnDQrO
(Disclaimer: The descriptions could be wrong for the east/west orientation :P)

 

Was grown from seed.
Last time I posted about it: https://lemmy.dbzer0.com/post/5241154

 

Hello fellow selfhosters, I tried to find a piece of software that could achieve my goal but maybe I am not searching in the correct areas. So I thought of asking here for suggestions or directions I could take.

What I am looking for:

I am looking for software that could fill a purpose of tracking like a helpdesk ticketing portal but not be a full blown ticketing portal.
For example I want to track current tasks like an RMA I am doing right now with Logitech (currently organized in my email inbox/folders) or keep track of shipments (currently tracked in Google Keep in this format: Shop | MM YYYY | Order-ID | Contents | Tracking:<Shipping Number>)

Features I am specifically looking for:

  • Tracking items (like shipments)
  • Keep track of issues (fix light bulb), Tasks (go to citizen office to renew ID),
    • Optionally: Keeping communication like E-Mails (like go back and see the communication history with Logitech concerning the RMA#999999)

Platforms I use:

Android and Windows.

What I have found so far and seemed to fit:

How I am coming to the conclusion I need something like that

  • As mentioned earlier, I keep track of some stuff like shipments, overtime todo, money I am owing or someone does owe me in Google Keep. It kinda works but I feel like I am straining the borders of it's use case. And I fear Googles Graveyard
  • I keep track of my e-mails via folders (to some extent). But I will probably not find the email of communication I had 5 months ago with that system.
    At work we use a classic ticket helpdesk system. I can more or less find the ticket of an issue a customer had on the phone and correlate it with the problem I have right now.
  • Some of my knowledge base is in Obsidian.md for technical stuff or minor stuff like "find x here", while the stuff related for real life (e.g. recipes) are stored in OneNote.
    It's not necessary to consolidate it but maybe I can remove some of each into the new system?

What I would like to avoid:

Things like creating companies to track tickets with. I would rather just keep track of the issue (maybe with some form of history to go back in time?) and not be lost in endless classification of company number, telephone, contacts etc.

Maybe I am in search of a unicorn-glitter edition^tm^ and just need someone to tell me that doesn't exist or I am not looking for the correct thing or term.
The help is highly appreciated :)

PS: While preferred it doesn't need to be selfhosted. It should be accessible via smartphone (app or web doesnt really matter) and on desktop (program or web).

Update:

Currently in consideration are (thanks for the suggestions so far!):

  • OpenProject
  • Focalboard
  • Vikunja
  • Tarallo
 
 

Update from last post. Steadily growing :)

 

I have a slight suspicion that every time I consume something with caffeine it has a specific effect on me.

A good cup of black or green tea: Slight headaches at some times.
A cup of coffee (from work coffee machine): Depending on strenght slight attention issues or headaches.
A cup of coffee from a coffee shop which roasts its own coffee: One time a bit of stronger attention issues than the work coffee.

I usually notice it right away after consuming.
But I also have a very strong issue with staying hydrated.
Usually drink 0.5-1l per day until I notice the usual dehydrated-headache or when I am really focused and loosing it at times.
Usually it's less prevelant at evening/night times.

1
submitted 1 year ago* (last edited 1 year ago) by [email protected] to c/[email protected]
 

I forgot to mention, that the picture is a bit old already (my bad).
Here is an up-to-date one: https://imgur.com/a/XhtOGc7

view more: next ›