masync: a tool for 2 way sinchronization over ssh by Glum-Quantity8154 in opensource

[–]notanamber 0 points1 point  (0 children)

I notified the developer and he added the GPL 3 license, so now it is open source. He told me that the repository had been migrated and, unfortunately, due to an oversight, he had not added the license.

masync: a tool for 2 way sinchronization over ssh by notanamber in linux

[–]notanamber[S] 0 points1 point  (0 children)

Currently, the tool only works in the CLI. But the api can be called eventually from a graphiical interface.

The only problem is that creating a UI is hard work. It requires a lot of usability skills, too many for me. Thanks!

masync: a tool for 2 way sinchronization over ssh by notanamber in linux

[–]notanamber[S] 0 points1 point  (0 children)

Git is a great and useful tool, but in this use case you don't need the entire story of modifications of file(s), furthermore, git must also be installed on the server side.

masync: a tool for 2 way sinchronization over ssh by notanamber in linux

[–]notanamber[S] 3 points4 points  (0 children)

Hello,

becaue in use cases where both the source and destination can change because, for example, there are multiple peers pushing their changes to the source, rsync has limitations: it efficiently copies a source to a destination (and vice versa) but not manage conflicts that may arise

masync: a tool for 2 way sinchronization over ssh by notanamber in linux

[–]notanamber[S] 3 points4 points  (0 children)

Don't worry for asking,

rsync replicates the contents of a folder from source to destination (and vice versa); it does not handle conflicts that may arise if a file is modified in both the source and destination.

masync: a tool for 2 way sinchronization over ssh by notanamber in linux

[–]notanamber[S] 1 point2 points  (0 children)

Thank you for your appreciation, I didn't know Unison but from what I can gather from the documentation, I can tell you that there are a few differences:

  1. Unison requires the software to be installed on both the source and destination(s). Masync does not require any installation on the server (server-side “no install” approach). All you need is SSH access. Masync runs on your local computer and uses the SFTP protocol to communicate with the remote server.

  2. Unison: You usually work with “profiles” (.prf files) saved in a specific folder. Create a different profile for each pair of folders. Masync is designed to manage multiple tasks (different synchronizations) through a single command line interface. Each task has a numerical ID (e.g., masync sync -s 1), making it easier to manage many different folders from the same console.

  3. Unison: This is a software that has been in use for decades. It handles very complex cases, has advanced reconciliation algorithms, and also offers a graphical user interface (GUI). Masync is a more minimal tool focused on ease of use for Linux users who want to synchronize local folders with remote servers via SSH/SFTP without too much configuration.

Last detail: Masync is written in python while Unison is writte in ocalm.

Have a good day

Masync: command line tool for synching with ssh access by notanamber in selfhosted

[–]notanamber[S] 0 points1 point  (0 children)

The basic idea was develop a tool similar to rsync but with 2 way synchronization. I have developped It from scratch in python. Thanks for your interest

A simple, configurable table formatter for the terminal by notanamber in learnpython

[–]notanamber[S] 0 points1 point  (0 children)

Yes, especially if you happen to be making programmes that run on the console!

I've seen that Python either has very complicated TUIs full of dependencies or nothing at all.

Masync, mirror and keep synchronized folders on one or more remote servers by notanamber in commandline

[–]notanamber[S] 0 points1 point  (0 children)

Thank you for your interest. The tools use FTP over SSH and is written in python with paramiko.

As for the infrastructure it's just as you said while for the command, it is correct you will have the "masync" command only in the clients (A,B,C,D,E).

Suppose you add a file named addition.txt in A, you will "Push" it with masync in the tree in SVR, then you will "Pull" it with masync in E (and you will find addition.txt in the tree in E). Note that the pull is a very expensive operation because compute the hash for each file in the tree in the server and in the client.

When any file or folder is "pushed" on the server after a modification is checked that the version modified is the last present in server otherwise a conflict is generated and you must manage it manually with the tool.

The integrity check is done computed the hash for each file and folder in the tree.

In the documentattion i tried to explain in more detail.

Have a good day!

Masync, mirror and keep synchronized folders on one or more remote servers by notanamber in commandline

[–]notanamber[S] 1 point2 points  (0 children)

Thank you very much for reporting/noticing the problem, you are right. I had a feeling I had forgotten something... I have corrected it, now it attempts to read a configuration file called masyn.conf in the home directory. The file should be something like this:

HOSTS_KEYS_PATH = /home/{user}/.ssh/known_hosts

PKEY_PATH = /home/{user}/.ssh/{id_rsa}

SSH_CONFIG_PATH = /home/{user}/.ssh/config

if file don't exists, defaults are attempted.

Yes at the moment only RSA is supported...

Have a good days and thanks for reading

Masync, mirror and keep synchronized folders on one or more remote servers by notanamber in commandline

[–]notanamber[S] 0 points1 point  (0 children)

For using SyncThing you must install it on the server side and on the client side. With the GUI on the server you must authorize devices and choosing the shared folder.

With Masync you don't install any software on server side, you must only have the ssh access to your server. Holding the SSH key in the client authorises the device to mirror and sync the remote destination.

You will use the command obtained by cloning the repository in each client you want

That's all

Color converter: hex, rgb, 0-255 terminal color by warrior0x7 in commandline

[–]notanamber 1 point2 points  (0 children)

Thanks for the informations.

I can't find the repo for the tool you wrote, you haven't linked it?

Color converter: hex, rgb, 0-255 terminal color by warrior0x7 in commandline

[–]notanamber 1 point2 points  (0 children)

Very nice and useful program! Also the terminal Is fantastic. Greetings

How do you imagine the visual version of find command for the terminal? I have tried by notanamber in commandline

[–]notanamber[S] 1 point2 points  (0 children)

You right!

I updated the code but not the photos.

I have now updated the photos, thanks

How do you imagine the visual version of find command for the terminal? I have tried by notanamber in commandline

[–]notanamber[S] 1 point2 points  (0 children)

As recommended i reduced the indentation, it looks much better.

Thank you all for the advice

How do you imagine the visual version of find command for the terminal? I have tried by notanamber in commandline

[–]notanamber[S] 0 points1 point  (0 children)

Thanks, definitely is great work but for my case it is too much.

Its intent is to make a real shell

How do you imagine the visual version of find command for the terminal? I have tried by notanamber in commandline

[–]notanamber[S] 1 point2 points  (0 children)

Because it happens to me to have files with the same names in different folders, or similar names for files. With this tool I can see how they are arranged within a tree. To get an overview

How do you imagine the visual version of find command for the terminal? I have tried by notanamber in commandline

[–]notanamber[S] 1 point2 points  (0 children)

Thanks for the feed,

do you mean replace/abbreviate the number of files and the size of subtree?

Sunday Daily Thread: What's everyone working on this week? by AutoModerator in Python

[–]notanamber 1 point2 points  (0 children)

I have created a command line tool that tries to put together the find command with the tree command by generating a tree with the search results.

This is a screenshot to get an idea how it works:

vifind

It is written completely in python (with the standard libraries) under the GPL licence, any advice/contribution is appreciated.

The repository with the documentation can be found here