Skip to content

Automated SFTP sync tool with file change tracking, Excel reporting, and email alerts.

License

Notifications You must be signed in to change notification settings

vielnos/AutoSync-SFTP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Python Version Platform LICENSE Last Commit

🔥 AutoSync – SFTP Auto Sync & File Change Tracker

AutoSync is a lightweight, configurable Python tool that automates SFTP → Local folder syncing, detects new or modified files, generates an Excel audit report, and sends a notification email — all without manual effort.

This tool is perfect for:

Audit & compliance teams

Data engineering

DevOps

Financial operations

Anyone managing recurring SFTP file downloads

🚀 Features

🔄 Automatically sync files from SFTP → Local (via WinSCP)

📁 Detect new files vs previous sync

📝 Generate Excel reports:

New Data

Old Data

New Files

✉️ Send email notifications with attached Excel report

⚙️ Fully configurable using config.json

🔒 Credentials stored externally (never in code)

🪶 Lightweight and easy to deploy

📂 Folder Structure

Sync/

├── SFTP Auto Sync Tool.py # Main script

├── README.md # Documentation

├── .gitignore # Prevents secret file upload

├── config.json # Local configuration (ignored by Git)

└── config.json.example # Safe template for GitHub

⚙️ Installation

1) Clone the repository

git clone https://github.com//AutoSync.git

cd AutoSync

2) Install dependencies

pip install pandas openpyxl

3) Install WinSCP

Download here:

https://winscp.net/eng/download.php

Then update the path in config.json → winscp_path.

🛠 Configuration

The tool uses config.json for all credentials & settings.

This file MUST exist in the same folder as the Python script.

⚠️ Never upload config.json to GitHub. Only upload config.json.example.

👉 Example: config.json.example (safe for GitHub)

{

  "sftp": {

  "host": "your-sftp-host",

  "port": 22,

  "username": "your-username",

  "password": "your-password",

  "remote_directory": "/remote/folder/path"

  },

  "local": {

  "local_directory": "C:/SyncFolder",

  "winscp_path": "C:/Program Files (x86)/WinSCP/WinSCP.com",

  "report_name": "sync_report.xlsx"

  },

  "email": {

  "sender": "sender@gmail.com",

  "receiver": "receiver@example.com",

  "password": "your-gmail-app-password"

  }

}

Users should copy this file, rename to config.json, and fill real credentials.

▶️ How to Run

python "SFTP Auto Sync Tool.py"

The system will:

Connect to the SFTP server

Sync all files to local folder

Compare old vs new data

Generate an Excel audit report

Email the results

📊 Excel Report Output

Sheet: New Data

| Folder Path | File Name | Last Modified | Matched | Match Time |

Sheet: Old Data

| Folder Path | File Name | Last Modified | Matched |

Sheet: New Files

(New files detected since previous sync)

🧱 Architecture Diagram (ASCII)

  ┌──────────────────────┐

  │ SFTP Server │

  └──────────┬───────────┘

  │

  (Synchronize via WinSCP)

  │

  ▼

  ┌──────────────────────┐

  │ Local Sync Folder │

  └──────────┬───────────┘

  │

  (File Scanner)

  │

  ▼

  ┌──────────────────────┐

  │ Change Detector │

  └──────────┬───────────┘

  │

  (Generate Excel Report)

  │

  ▼

  ┌──────────────────────┐

  │ Email Notification │

  └──────────────────────┘

📅 Roadmap

v1.0

✔ SFTP sync

✔ File comparison

✔ Excel report generation

✔ Email alerts

✔ Config-driven

v1.1 (Planned)

⬜ OneDrive / Google Drive sync

⬜ Logging system (logs folder)

⬜ CLI commands

⬜ GUI version

⬜ Scheduled sync (cron).

📜 License

MIT License — free to use & modify.

⭐ Support

If you find this tool useful, please star ⭐ the repository!

About

Automated SFTP sync tool with file change tracking, Excel reporting, and email alerts.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages