86 lines
2.1 KiB
Markdown
86 lines
2.1 KiB
Markdown
# SSHFileToCbs - File Transfer Application
|
|
|
|
A modern Python implementation of a file transfer application between local and remote servers using SSH/SFTP or FTP.
|
|
|
|
## Features
|
|
|
|
- Support for both SSH/SFTP and FTP protocols
|
|
- Robust logging with rotation
|
|
- System monitoring for performance and resource usage
|
|
- Error handling and recovery
|
|
- Configurable file paths and patterns
|
|
- Clean code architecture following modern Python practices
|
|
|
|
## Requirements
|
|
|
|
- Python 3.6+
|
|
- Dependencies listed in requirements.txt
|
|
|
|
## Installation
|
|
|
|
1. Clone the repository
|
|
2. Install dependencies:
|
|
|
|
```bash
|
|
pip install -r requirements.txt
|
|
```
|
|
|
|
## Configuration
|
|
|
|
Create or edit the `config/config.ini` file with your server details and file paths:
|
|
|
|
```ini
|
|
[server]
|
|
REMOTE_HOST=your_host
|
|
REMOTE_USER=your_username
|
|
REMOTE_PASS=your_password
|
|
REMOTE_PORT=22
|
|
|
|
[app]
|
|
SLEEP_TIME_MINS=30
|
|
TRANSFER_PROTOCOL=SSH
|
|
|
|
[paths]
|
|
LOCAL_FOLDER_PATH=/path/to/local/files/
|
|
ARCHIVE_FOLDER_PATH=/path/to/archive/
|
|
LOCAL_REPORT_PATH=/path/to/report/files/
|
|
LOCAL_FAILED_PATH=/path/to/failed/files/
|
|
|
|
[remote_paths]
|
|
REMOTE_REPORT_PATTERN=BLK_*
|
|
REMOTE_INPUT_FILE_PATH=path/to/input/
|
|
REMOTE_OUTPUT_FILE_PATH=path/to/output/
|
|
REMOTE_FAILURE_FILE_PATH=path/to/failure/
|
|
```
|
|
|
|
## Usage
|
|
|
|
Run the application with:
|
|
|
|
```bash
|
|
python main.py
|
|
```
|
|
|
|
### Command Line Options
|
|
|
|
- `--config`: Path to configuration file (default: config/config.ini)
|
|
- `--log-level`: Set logging level (DEBUG, INFO, WARNING, ERROR, CRITICAL)
|
|
|
|
## How It Works
|
|
|
|
The application:
|
|
1. Sends local files to the remote server
|
|
2. Archives sent files locally
|
|
3. Fetches report files from the remote server
|
|
4. Fetches failed files from the remote server
|
|
5. Sleeps for a configured period
|
|
6. Repeats the cycle
|
|
|
|
## Architecture
|
|
|
|
- `protocols/`: Protocol interfaces and implementations (SSH, FTP)
|
|
- `services/`: Core services for file sending and fetching
|
|
- `file_operations/`: Local file management utilities
|
|
- `utils/`: Logging, configuration, and monitoring utilities
|
|
- `app.py`: Main application class
|
|
- `main.py`: Entry point and command-line interface |