Compare local script output with remote script output
Compare local files with remote files
This is a generic file comparing tool. I wrote it to help the transition from “pet to cattle”. With other words I am switching from linux server managed with vi and ssh to configuration management.
It helps you to compare files on a remote host with files on your local file system.
pip install -e git+https://github.com/guettli/compare-with-remote.git#egg=compare-with-remote
===> compare-with-remote -h usage: compare-with-remote [-h] [--only-files-containing-pattern ONLY_FILES_CONTAINING_PATTERN] directory_url_one directory_url_two compare two directories. Directories can get fetched via ssh first, then "meld" get called to copmare the directories. See https://github.com/guettli /compare-with-remote positional arguments: directory_url_one [[user@]remote-host:]dir directory_url_two [[user@]remote-host:]dir optional arguments: -h, --help show this help message and exit --only-files-containing-pattern ONLY_FILES_CONTAINING_PATTERN
You want to compare all files in the /etc directory which contain the word “rsyslog”:
root@local-server> compare-with-remote --only-files-containing-pattern rsyslog \ root@server-with-cute-name-1:/etc \ root@server-with-cute-name-2:/etc
You can compare the output of scripts like this:
root@local-server> compare-with-remote \ 'postgres@server-with-cute-name-1:psql -c "select app, name from django_migrations order by id"' \ 'postgres@server-with-cute-name-2:'
If you don’t provide a remote-command for the second host, then the command from the first host will get called. In this case all rows of a database table get compared.
After fetching the files, the script calls the tool “meld” to show the actual diff:
Here is a screenshot of meld showing the difference between two files:
Don’t be shy
I want to know what you think and feel. Please leave a comment via the github issue tracker. I love feedback.