Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Default shell for remote user is expected to be bash #206

Open
va83 opened this issue Jul 29, 2020 · 3 comments
Open

Default shell for remote user is expected to be bash #206

va83 opened this issue Jul 29, 2020 · 3 comments
Labels

Comments

@va83
Copy link

va83 commented Jul 29, 2020

There is an example in documentation, which shows how to invoke osync when bash is not the default shell. It would be helpful to put there also note which mentions that bash as default shell is also expected from remote ssh user.

When remote users default shell is for example tcsh and bash is installed, then osync fails with unhelpful messages:

TIME: 1 - Creating target replica file list [/usr/home/user/dest/].
TIME: 1 - Cannot create replica file list in [/usr/home/user/dest/].
TIME: 1 - Truncated output:
env: No match.
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: error in rsync protocol data stream (code 12) at io.c(226) [Receiver=3.1.3]
TIME: 1 - _ExecTasksPidsCheck called by [Sync_treeListBefore] finished monitoring pid [17603] with exitcode [12].
TIME: 2 - osync finished with errors.

After replacing remote users default shell with bash, osync runs without errors.

Does this requirement means that osync can not be used with service providers which do not allow direct log in? rsync.net for example supports rsync, but there is no interactive session.

@deajan
Copy link
Owner

deajan commented Jul 30, 2020

Indeed, for osync logic to work, an ssh login is mandatory.
I'll add something to the doc, but since osync won't be able to detect the remote shell it connects to, I cannot make a valid error message.

@deajan deajan added the doc label Jul 30, 2020
@va83
Copy link
Author

va83 commented Jul 31, 2020

Are there workarounds for cases when ssh target doesn't allow interactive session?

For example, what may be the possible shortcomings of the following algorithm in case of local ZFS file system:

  1. Create snapshot from local dataset.
  2. Create clone from snapshot.
  3. rsync remote ssh target to clone.
  4. zfs diff clone and snapshot. If diff is empty then destroy clone and snapshot. Done.
  5. osync locally with clone.
  6. rsync clone back to ssh target.
  7. destroy clone and snapshot.

@deajan
Copy link
Owner

deajan commented Sep 21, 2020

Sorry, osync needs to transfer some code remotely in order to be able to deal with file attributes and deletions.
No interactive session means no sync possibility.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants