Skip to content

kobayasy/pSync

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

124 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

[ Features | System Requirements | Installation | Usage ] // Japanase (日本語)


Linux macOS Windows | SAST

pSync

Features

  • An open source file synchronisation system utilising SSH connections.
  • Synchronises files within specified directories between networked hosts.
    • You can specify multiple synchronisation directories.
    • Directory names do not need to match across hosts.
    • Synchronisation directories are managed by labels; directories sharing the same label are targeted for synchronisation.
    • Synchronisation hosts can be separated for each directory.
  • Files deleted or updated during synchronisation are kept as backups of their previous state for a specified period.
  • The software operates identically on both source and destination hosts.
    • It can relay synchronisation between cloud hosts or synchronise directly between local hosts.
  • Even if the process is interrupted (e.g., due to communication loss), the synchronisation operation is performed atomically, ensuring that only complete synchronisations occur and the pre-sync state is maintained.
  • The feature to automatically detect file updates and execute synchronisation is intentionally omitted.
    • This prevents files currently being edited from being synchronised unintentionally.
    • Users can execute synchronisation at any desired time.
    • It does not run in the background except during synchronisation, thus conserving system resources.
  • SSH connection is used for communication between hosts.
    • No dedicated server software installation is required.
      • Administrator privileges are not needed for installation.
    • User authentication supports public key authentication in addition to password authentication.
    • Transferred data is encrypted and compressed.
  • Dependencies on external libraries are minimal; building and installation are possible in any environment where pthread is available.
    • If libtinfo or libncurses is installed during the build process, a feature to display file synchronisation progress via a progress bar is added (this is optional).
  • Designed to be memory-efficient, considering operation on embedded devices.
  • Supported file types are limited to regular files, symbolic links, and directories.
    • If other types (device files, sockets, FIFOs, etc.) are included, an error will occur and synchronisation will not proceed.
  • Hard links are treated as individual files, and the link structure is not maintained.
  • The only metadata synchronised is permissions (owner, group, others), creation time, and modification time.
    • Other metadata (User ID, Group ID, access time, etc.) is not synchronised and depends on the destination host's environment.

System Requirements

  • SSH connection must be possible from the source host to the destination host.
    • An SSH server must be installed on the destination host.
    • An SSH client must be installed on the source host.

Installation

This procedure is required on all hosts involved in synchronisation. The steps are identical for both source and destination hosts.

  1. Execute the build and installation using the following commands:
curl -LOJs https://github.com/kobayasy/pSync/releases/download/3.16/psync-3.16.tar.gz
tar xzf psync-3.16.tar.gz
cd psync-3.16
./configure --prefix=$HOME
make install
  1. If ~/bin is not in your PATH, please add it to your environment variables.
  2. The following configuration is required only for the initial setup. This is an example setting ~/pSync as the synchronisation directory. Note that while the directory name can differ between the source and destination, the label name must match.
mkdir ~/pSync && chmod 700 ~/pSync
cat <<. >~/.psync.conf && chmod 600 ~/.psync.conf
#Label Directory
psync  pSync
.

Usage

  1. The help message is displayed using the following command:
psync --help
  1. For example, to synchronise with guest@example.com, execute the following command:
psync guest@example.com

About

An open source cloud file sharing system. Securely and quickly synchronise your files using SSH for authentication, encryption, and compression.

Topics

Resources

License

Stars

Watchers

Forks