webuhu

webuhu

Rewrite shell tasks to get triggerd by Elixir application

I try to get some opinions about the following use case for Elixir.
I currently have shell scripts for the task of a nightly file backup.

Local commands

  • mount encrypted securefs storage (“long” running interactive shell command - type password)
  • rsync files to securefs mount
  • stop securefs mount process
  • rsync encrypted securefs storage files to remote storage

Remote commands

  • rotate backups (mv & cp -al)

Now, I’m thinking about triggering all of this commands from within an Elixir application.
Is this a good idea? By heavily using System.cmd/3 and maybe Port.
Where in this use case is using Port the better choice?

The case why I would love to do all of the above in Elixir, is I want to use my existing Logger backends for e.g. log to Matrix on success, log to SMS on failure.
And I wouln’t need to configure a cronjob for running the nightly backup task.

So what are your thoughts about this?

First Post!

LostKobrakai

LostKobrakai

Personally I favour pull based backups, and I have an elixir application connecting to some of our servers and doing db backups and moving them to S3. I only wouldn’t want to let the application I want to backup data of handle it’s own backuping. Chances are a bug, which requires you to rollback to a backup could also have broken the backup system, so keeping those separate from each other is probably a good idea.

Last Post!

webuhu

webuhu

Good idea to use pull data instead of push.
But of course the system (local commands) are already separated from the data layer.

Where Next?

Popular in Questions Top

jononomo
I am trying to figure out how Mix knows whether the environment is test, dev, or prod – where is this set? Thanks.
New
New
gshaw
What is the idiomatic way of matching for not nil in Elixir? E.g., First way: defp halt_if_not_signed_in(conn, signed_in_account) when...
New
siddhant3030
Hi, I have to write a raw query for one of my project. But till now I have used ecto queries and don’t have much experience writing raw ...
New
freewebwithme
Using vs code and installed ElixirLS: support and debugger. And I got an error popped up on start up says Failed to run ‘elixir’ comma...
New
JorisKok
I have a server on AWS, and was running a load test using artillery. When looking at the Phoenix dashboard I see the Ports going to 100% ...
New
Harrisonl
We have an ECS cluster with 4 services, where each task joins a single cluster, via discovery ECS discovery service. Currently when I de...
New

Other popular topics Top

New
hariharasudhan94
Lets say I have map like this fetching from my database %{"_id" => #BSON.ObjectId<58eb1a7a9ad169198c3dXXXX>, "email" => ...
New
greenz1
I have a phoenix application from which a user can download multiple(5-6) files of size 1MB. I couldn’t find anything related to sending ...
New
axelson
This post is a wiki (feel free to hit the edit button near the bottom right of this post to add your own changes!) This post collects co...
239 49266 226
New
SoCreat
i’m a new one to elixir which editor can i use vs code? or atom? Thanks! :smiley:
New
jason.o
In the code below, if the create action is not set to accept “extra_key” as an input, it errors out with a message shown above. Is there ...
New

We're in Beta

About us Mission Statement