hsftp: A SFTP client tool for secure file transfer operations

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

[maintain] [Publish]

Hsftp is a command-line tool for secure file transfer operations


[Skip to Readme]

Properties

Versions 1.3.1, 1.4.0, 1.4.0
Change log CHANGELOG.md
Dependencies aeson (>=2.2.3.0 && <2.3), base (>=4.7 && <5), bytestring (>=0.12.1.0 && <0.13), cmdargs (>=0.10.22 && <0.11), directory (>=1.3.8.5 && <1.4), filepath (>=1.4.301.0 && <1.5), hsftp, libssh2 (>=0.2.0.9 && <0.3), mtl (>=2.3.1 && <2.4), time (>=1.12.2 && <1.13), yaml (>=0.11.11.2 && <0.12) [details]
License BSD-3-Clause
Copyright (c) 2024-present IOcrafts
Author Maurizio Dusi
Maintainer Maurizio Dusi
Category Utils, Network
Home page https://iocrafts.github.io/hsftp/
Bug tracker https://github.com/iocrafts/hsftp/issues
Source repo head: git clone https://github.com/iocrafts/hsftp
Uploaded by MaurizioDusi at 2025-06-10T17:40:51Z

Modules

[Index] [Quick Jump]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


Readme for hsftp-1.4.0

[back to package description]

Hsftp: a SFTP client tool for secure file transfer operations.

Release

Usage of hsftp

Hsftp 1.4.0. Usage: hsftp OPTION

hsftp [OPTIONS] [ITEM]

Common flags:
  -c --conf=FILE          Load conf from file
     --from-date=DATE     Filter files by date (YYYY-MM-DD HH:MM UTC|PST|...)
  -e --extensions=ITEM    Filter files by extensions
  -u --up                 upload
  -d --down               download
     --transfer-from=DIR  Folder to transfer from
     --transfer-to=ITEM   Folder to transfer to
     --archive-to=DIR     Folder to archive to after upload

Miscellaneous:
     --verbose=INT        Verbose level: 1, 2 or 3
  -n --dry-run            Do a dry-run ("No-op") transfer.
  -? --help               Display help message
  -V --version            Print version information
     --numeric-version    Print just the version number

Example of conf.yaml

remote:
        hostname: sftp.domain.com
        port: 22
        username: username
        password: password
        known_hosts: /home/user/.ssh/known_hosts

Usage

Download from remote to local - filter by date

hsftp -c conf.yaml -d \
    --transfer-from /path/to/remote/folder \
    --transfer-to /path/to/local/folder \
    --from-date "2024-06-14 12:15 PDT"

Upload from local to remote - filter by extension

hsftp -c conf.yaml -u \
    --transfer-from /path/to/local/folder \
    --transfer-to /path/to/remote/folder \
    -e xml -e Xml

Upload from local to remote - archive files locally after upload

hsftp -c conf.yaml -u \
    --transfer-from /path/to/local/folder \
    --transfer-to /path/to/remote/folder \
    --archive-to /path/to/local/archive/folder