This have been really frustrating for me as of late since I just found out today that it seems to me that the Minetest Multiplayer List is based up if the server been online for at least 8 hours for the last 8 hours.

Rendering daily backups of the server (since it does have to be shut down for it be done safely.) pulling me to the bottom for up to a third of the day because of this up time “uptime” system.

So I am wondering what if there’s anything I am able to do? Like are there other options aside from playing a “creative like” game which is Minecraft and people birching to me, about paying for it?

  • poVoq@lemmy.ml
    link
    fedilink
    arrow-up
    2
    ·
    3 years ago

    Automate the backups during the night? But IMHO there is no real need for full system backups that require shutting down a server.

    • DBGamer@lemmy.mlOP
      link
      fedilink
      arrow-up
      1
      ·
      3 years ago

      The Sqlite3 database actually does requires a shutdown or else the map.sqlite will in fact gets corrupted (since there are live transactions going on even if nobody is on it).

      I also can’t be certain if the game will handles the Sqlite3’s .backup function properly or if it will “freezes” the game while it does this. Which the only resource I find about this was https://forum.minetest.net/viewtopic.php?p=339487#p339487 but again I do not understand what will happens in game while this happens.

      • Jojonintendo@lemmy.ml
        link
        fedilink
        arrow-up
        2
        ·
        3 years ago

        Maybe that doesn’t apply at all in your case, but what I do with my self-hosted services is pause their Docker containers, backup, and un-pause them. It’s probably not as clean as stopping the database, but at least it’s in a consistent state, and I’ve restored multiple times without issues so far.

        • DBGamer@lemmy.mlOP
          link
          fedilink
          arrow-up
          1
          ·
          3 years ago

          INTERESTING This may or may not work, firstly the Minetest Server need not be flips out that it’s being literally frozen, as well as the Pterodactyl Panel (as it managed though there) and resumes normal processes. THEN you also gotta hope that you’re freezing it when the server list is not polling for uptime (it does this I think every 10 to 15 minutes I think?).

          So firstly I would probably want to freeze it manually to see how the panel responds to it. Then proceed if it possible to go further.

          If this is… This might works especially if I rig up a script for it to pauses it, tar it, unpause it. That way it’s ONLY frozen for the amount of time it needs to be. Which until the map get a quite a size (I would say over 6GB or so) this might be feasible. As that when I expect the NVMes to take over a minute to tar the thing.

          • Jojonintendo@lemmy.ml
            link
            fedilink
            arrow-up
            2
            ·
            3 years ago

            Sounds doable indeed, please share your results once done :)

            In my case I do it to backup a Mastodon instance, a Lemmy instance and a few other dockers on a Rock64, so quite low powered. Everything is done in less than a minute, but the databases are still very lightweight, I’ll have to see if this remains feasible as time goes on. For now it’s definitely fine and I don’t have to touch the database.

            • DBGamer@lemmy.mlOP
              link
              fedilink
              arrow-up
              2
              ·
              3 years ago

              Will do! Thanks for the idea! I reprovision-ed the game server with no additional backends enabled to rule out any other variables as possible. Then I gotta start it, pause it manually and see what the panel is indicating of it, just to make sure it doesn’t think it’s dead or something and decides to kill it.

              If that goes to as plan then I will attempt to make a script to try to back it up, get into the game on an endless exploring venture and see how the GAME responds to this (the script will be primed on cron like 20 minutes in or something).