An open API service indexing awesome lists of open source software.

https://github.com/duckboss/filesync

A directory/file syncing program with batched multi-core support
https://github.com/duckboss/filesync

backup filesync python sftp

Last synced: 10 months ago
JSON representation

A directory/file syncing program with batched multi-core support

Awesome Lists containing this project

README

          

# FileSync
A directory/file syncing program with multi-core support.

![GitHub release (latest by date)](https://img.shields.io/github/v/release/DuckBoss/FileSync)

## Features
- Sync directories/files to other local directories or networked directories with SFTP
- Live scans to detect changes in source files to automatically re-sync destination files
- Sync to multiple local or networked directories (mirrors source files to multiple directories)
- Optional batched multi-core support
- Optionally ignore specific directories/files during synchronization
- Support for crc32, adler32, md5, sha1, sha224, sha256, sha384, sha512 checksums

## Usage
---
#### Step 1) Setup the settings.ini file
You can either manually create the settings.ini file based on the provided one, or generate one using the setup utility.

1. **Running the setup utility for settings.ini:**

Run the python module with the following launch parameter:
`--setup`
2. **Manually setup settings.ini:**

Open the settings.ini file provided in the repository and modify the data as needed.

#### Step 2) After setting up the settings.ini file, run the program:
- As a module:
`python FileSync/`
---

## Optional Parameters
```
--h/--help: Displays all the available commands to the user.
--setup: Initializes setup mode which provides an interactive settings.ini creation utility
--debug: Enables debug print messages.
--quiet: Suppresses all standard output messages. This is preferable for a headless environment.
--benchmark: Enables benchmarking file/directory processes.
--no-live-scan: Disables live scanning for changes in the directories which makes the program only sync once.
--multi: Enables multi-core processing (not recommended for small directories).
--batch-size : Sets the batch size for multi-core processing, if enabled (recommended - 100+ for large quantities of data)
--scan-interval : Sets the time interval in seconds between directory scans (recommended - 2-5s)
--clear-targets: Clears destination directories before starting synchronizations
--hash : Sets the hashing algorithm to use for checksums (recommended - sha256).
Supported hashing algorithms: [adler32, crc32, md5, sha1, sha224, sha256, sha384, sha512]
--use-sftp: Enables SFTP server connectivity (use with --username/--password command)
--username: Sets the username for sftp server communication
--password: Sets the password for sftp server communication
```

## Requirements
- Python 3.7+
- paramiko (only if SFTP is used)

### Installing Dependencies
```
pip install -r requirements.txt
```