Grab your files periodically from a remote FTP or SFTP server easily

Overview

Documentation GitHub release Total downloads Build Status Docker Stars Docker Pulls
Go Report Codecov Become a sponsor Donate Paypal

About

FTPGrab is a CLI application written in Go and delivered as a single executable (and a Docker image) to grab your files from a remote FTP or SFTP server to your NAS, server or computer.

💡 Want to be notified of new releases? Check out 🔔 Diun (Docker Image Update Notifier) project!

Documentation

Documentation can be found on https://crazymax.dev/ftpgrab/

Contributing

Want to contribute? Awesome! The most basic way to show your support is to star the project, or to raise issues. If you want to open a pull request, please read the contributing guidelines.

You can also support this project by becoming a sponsor on GitHub or by making a Paypal donation to ensure this journey continues indefinitely!

Thanks again for your support, it is much appreciated! 🙏

License

MIT. See LICENSE for more details.
Icon credit to Nick Roach.

Issues
  • Bump github.com/stretchr/testify from 1.7.0 to 1.8.0

    Bump github.com/stretchr/testify from 1.7.0 to 1.8.0

    Bumps github.com/stretchr/testify from 1.7.0 to 1.8.0.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    :robot: bot :game_die: dependencies 
    opened by dependabot[bot] 0
  • Bump github.com/alecthomas/kong from 0.5.0 to 0.6.1

    Bump github.com/alecthomas/kong from 0.5.0 to 0.6.1

    Bumps github.com/alecthomas/kong from 0.5.0 to 0.6.1.

    Commits
    • 0066abb fix: Reset() should always be called before anything else
    • edc47eb helpful error message when flag is missing values (#310)
    • 9d72e94 Update yaml v3 to v3.0.1 to fix CVE 2022 28948 (#309)
    • 195d56c Remove references to flag HelpProviders
    • 6042c4b Add example of HelpProvider + README
    • 1db2ea2 Move old shell/main to subdirectory
    • 0aaa4c1 fix: existing file/dir always checks default
    • 3c21644 fix linux build
    • 29685e7 treat \ as escape only before a separator
    • 5538b7f change help hook and call Reset later
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    :robot: bot :game_die: dependencies 
    opened by dependabot[bot] 0
  • Bump github.com/pkg/sftp from 1.13.4 to 1.13.5

    Bump github.com/pkg/sftp from 1.13.4 to 1.13.5

    Bumps github.com/pkg/sftp from 1.13.4 to 1.13.5.

    Release notes

    Sourced from github.com/pkg/sftp's releases.

    v1.13.5

    GH-498 request server: add WithStartDirectory option GH-494 sequential writes: ensure to always return write errors, if any GH-492 PosixRename and Hardlink: convert remote paths to local paths GH-489 Fix missing io.EOF when concurency is disabled GH-485 Add File.ReadFrom test on a SectionReader GH-482 Sequentially issue write requests, process results concurrently GH-478 Translate EACCES to PERMISSION_DENIED GH-471 CI: run test cases also on 32-bit arch

    Commits
    • a17a626 Remove unreachable and duplicated return statement
    • dcfc1d5 Merge pull request #499 from drakkan/write-seq
    • c7fdf5e writeToSequential: improve tests for write errors
    • 59b2472 Merge pull request #498 from drakkan/startdir
    • 65f24bc Improved test with CR feedback
    • c2c0f60 Return writer error if not nil in writeSequential
    • 03407a7 mark RealPathFileLister as deprecated
    • 98b35dc request server: add WithStartDirectory option
    • aa9a37d Merge pull request #492 from pkg/bug/extended-packets-no-path-convert
    • a61b35f remove racing stdout
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    :robot: bot :game_die: dependencies 
    opened by dependabot[bot] 0
  • Bump github.com/rs/zerolog from 1.26.1 to 1.27.0

    Bump github.com/rs/zerolog from 1.26.1 to 1.27.0

    Bumps github.com/rs/zerolog from 1.26.1 to 1.27.0.

    Commits
    • e9344a8 docs: add an example for Lshortfile-like implementation of CallerMarshalFunc ...
    • 263b0bd #411 Add FieldsExclude parameter to console writer (#418)
    • 588a61c ctx: Modify WithContext to use a non-pointer receiver (#409)
    • 361cdf6 Remove extra space in console when there is no message (#413)
    • fc26014 MsgFunc function added to Event (#406)
    • 025f9f1 journald: don't call Enabled before each write (#407)
    • 3efdd82 call done function when logger is disabled (#393)
    • c0c2e11 Consistent casing, redundancy, and spelling/grammar (#391)
    • 665519c Fix ConsoleWriter color on Windows (#390)
    • 0c8d3c0 move the lint command to its own package (#389)
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    :robot: bot :game_die: dependencies 
    opened by dependabot[bot] 0
  • Bump crazy-max/ghaction-github-pages from 2 to 3

    Bump crazy-max/ghaction-github-pages from 2 to 3

    Bumps crazy-max/ghaction-github-pages from 2 to 3.

    Release notes

    Sourced from crazy-max/ghaction-github-pages's releases.

    v3.0.0

    • Node 16 as default runtime (#167)
      • This requires a minimum Actions Runner version of v2.285.0, which is by default available in GHES 3.4 or later.

    v2.7.0

    • Update dev dependencies and workflow (#166)

    v2.6.0

    • Add absolute_build_dir and follow_symlinks inputs (#161)
    • Bump @​actions/exec from 1.0.4 to 1.1.0 (#152)
    • Bump @​actions/core from 1.3.0 to 1.6.0 (#154 #156)

    v2.5.0

    • Add verbose input (#150)
    • Bump @​actions/core from 1.2.7 to 1.3.0 (#148)
    • Yarn v2 (#146)

    v2.4.1

    • Verbose output

    v2.4.0

    • Add dry-run input (#144)
    • Refactor logging output
    • Bump fs-extra from 9.1.0 to 10.0.0 (#139)
    • Bump @​actions/core from 1.2.6 to 1.2.7 (#137)
    • Enhance workflow (#136)

    v2.3.0

    • Bring back copySync (#135)
    • Container based developer flow (#134)
    • Add domain input (#133)

    v2.2.0

    • Use native copy (#129)
    • Warning message on unresolved symlinks
    • Show diff

    v2.1.3

    • Fix CVE-2020-15228

    v2.1.2

    • Dereference symlinks (#121)

    v2.1.1

    • Fix cloning repo log

    v2.1.0

    • Add jekyll input option (#116)

    v2.0.1

    ... (truncated)

    Changelog

    Sourced from crazy-max/ghaction-github-pages's changelog.

    3.0.0 (2022/05/26)

    • Node 16 as default runtime (#167)
      • This requires a minimum Actions Runner version of v2.285.0, which is by default available in GHES 3.4 or later.

    2.7.0 (2022/05/26)

    • Update dev dependencies and workflow (#166)

    2.6.0 (2022/01/13)

    • Add absolute_build_dir and follow_symlinks inputs (#161)
    • Bump @​actions/exec from 1.0.4 to 1.1.0 (#152)
    • Bump @​actions/core from 1.3.0 to 1.6.0 (#154 #156)

    2.5.0 (2021/05/30)

    • Add verbose input (#150)
    • Bump @​actions/core from 1.2.7 to 1.3.0 (#148)
    • Yarn v2 (#146)

    2.4.1 (2021/05/13)

    • Verbose output

    2.4.0 (2021/05/13)

    • Add dry_run input (#144)
    • Refactor logging output
    • Bump fs-extra from 9.1.0 to 10.0.0 (#139)
    • Bump @​actions/core from 1.2.6 to 1.2.7 (#137)
    • Enhance workflow (#136)

    2.3.0 (2021/03/16)

    • Bring back copySync (#135)
    • Container based developer flow (#134)
    • Add domain input (#133)

    2.2.0 (2020/11/12)

    • Use native copy (#129)
    • Warning message on unresolved symlinks
    • Show diff

    2.1.3 (2020/10/01)

    • Fix CVE-2020-15228

    2.1.2 (2020/08/06)

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    :robot: bot :game_die: dependencies 
    opened by dependabot[bot] 0
  • Bump crazy-max/ghaction-github-status from 2 to 3

    Bump crazy-max/ghaction-github-status from 2 to 3

    Bumps crazy-max/ghaction-github-status from 2 to 3.

    Release notes

    Sourced from crazy-max/ghaction-github-status's releases.

    v3.0.0

    • Node 16 as default runtime (#63)
      • This requires a minimum Actions Runner version of v2.285.0, which is by default available in GHES 3.4 or later.

    v2.3.0

    • Codespaces status support (#62)
    • Update dev dependencies and workflow (#61)
    • Bump @​actions/core from 1.2.6 to 1.6.0 (#37 #51 #55)
    • Bump minimist from 1.2.5 to 1.2.6 (#59)
    • Bump ansi-regex from 5.0.0 to 5.0.1 (#54)
    • Bump tmpl from 1.0.4 to 1.0.5 (#53)
    • Bump path-parse from 1.0.6 to 1.0.7 (#50)
    • Bump hosted-git-info from 2.8.8 to 2.8.9 (#45)
    • Bump ws from 7.3.1 to 7.4.6 (#44)
    • Bump lodash from 4.17.20 to 4.17.21 (#46)
    • Bump chalk from 4.1.0 to 4.1.2 (#38 #49)

    v2.2.0

    • Bump @​actions/http-client from 1.0.9 to 1.0.11 (#34)
    • Bump y18n from 4.0.0 to 4.0.1 (#36)
    • Container dev workflow (#35)
    • Bump node-notifier from 8.0.0 to 8.0.1 (#32)

    v2.1.0

    • Add maintenance status (#31)
    • Bump @​actions/http-client from 1.0.8 to 1.0.9 (#28)

    v2.0.1

    • Fix CVE-2020-15228
    Changelog

    Sourced from crazy-max/ghaction-github-status's changelog.

    3.0.0 (2022/05/26)

    • Node 16 as default runtime (#63)
      • This requires a minimum Actions Runner version of v2.285.0, which is by default available in GHES 3.4 or later.

    2.3.0 (2022/04/24)

    • Codespaces status support (#62)
    • Update dev dependencies and workflow (#61)
    • Bump @​actions/core from 1.2.6 to 1.6.0 (#37 #51 #55)
    • Bump minimist from 1.2.5 to 1.2.6 (#59)
    • Bump ansi-regex from 5.0.0 to 5.0.1 (#54)
    • Bump tmpl from 1.0.4 to 1.0.5 (#53)
    • Bump path-parse from 1.0.6 to 1.0.7 (#50)
    • Bump hosted-git-info from 2.8.8 to 2.8.9 (#45)
    • Bump ws from 7.3.1 to 7.4.6 (#44)
    • Bump lodash from 4.17.20 to 4.17.21 (#46)
    • Bump chalk from 4.1.0 to 4.1.2 (#38 #49)

    2.2.0 (2021/03/30)

    • Bump @​actions/http-client from 1.0.9 to 1.0.11 (#34)
    • Bump y18n from 4.0.0 to 4.0.1 (#36)
    • Container dev workflow (#35)
    • Bump node-notifier from 8.0.0 to 8.0.1 (#32)

    2.1.0 (2020/12/17)

    • Add maintenance status (#31)
    • Bump @​actions/http-client from 1.0.8 to 1.0.9 (#28)

    2.0.1 (2020/10/01)

    • Fix CVE-2020-15228

    2.0.0 (2020/09/20)

    • Add issues_threshold and prs_threshold inputs
    • Remove ipp_threshold input
    • Update deps

    1.0.1 (2020/05/23)

    • Update generated content

    1.0.0 (2020/05/23)

    • Initial version
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    :robot: bot :game_die: dependencies 
    opened by dependabot[bot] 0
Releases(v7.7.0)
Owner
CrazyMax
Software Engineer, DevOps, Open Source, Go, Containers
CrazyMax
A simple FTP protocol with client and server implemented in TypeScript and Golang

websocket-ftp A simple FTP protocol with client and server implemented in TypeScript and Golang. Example (Client) const buffer: Uint8Array = (new Text

LQR471814 0 Apr 14, 2022
FTP server in Golang - Donovan and Kernighan´s excercise 8.2

This is my implementation of Exercise 8.2 in Donovan and Kernighan’s “The Go Programming Language”. With a LOT of help from Angus Morrison´s article h

Svein W 0 Feb 6, 2022
SFTP support for the go.crypto/ssh package

sftp The sftp package provides support for file system operations on remote ssh servers using the SFTP subsystem. It also implements an SFTP server fo

null 1.2k Jun 21, 2022
SFTP client simple wrapper.

Installation go get -u github.com/coolstina/sftpclient Example package main import ( "fmt" "log" "os" "github.com/coolstina/sftpclient" ) func

coolstina 0 Nov 3, 2021
A simple abstraction around ssh and sftp libraries in Go(Golang).

sshx A simple abstraction around ssh and sftp libraries in Go(Golang). Resources Installation Installation Install sshx as you normally would for any

Alex Munene 2 Feb 26, 2022
SFTP backed by LDAP and S3-compatible object stores

RainSFTP RainSFTP is an implementaion of the Secure File Transfer Protocol backed by LDAP for authentication and an S3-compatible object store. This m

Megan Ruggiero 2 Feb 23, 2022
FTP client package for Go

goftp A FTP client package for Go Install go get -u github.com/jlaffaye/ftp Documentation https://pkg.go.dev/github.com/jlaffaye/ftp?tab=doc Example

Julien Laffaye 947 Jun 20, 2022
Access ftp through caddy

Access ftp through caddy

null 2 Mar 16, 2022
Traefik config validator: a CLI tool to (syntactically) validate your Traefik configuration filesTraefik config validator: a CLI tool to (syntactically) validate your Traefik configuration files

Traefik Config Validator Note This is currently pre-release software. traefik-config-validator is a CLI tool to (syntactically) validate your Traefik

Thomas Klinger 0 Dec 16, 2021
JPRQ Customizer is a customizer that helps to use the JPRQ server code and make it compatible with your own server with custom subdomain and domain

JPRQ Customizer is a customizer that helps to use the JPRQ server code and make it compatible with your own server with custom subdomain and domain.You can upload the generated directory to your web server and expose user localhost to public internet. You can use this to make your local machine a command center for your ethical hacking purpose ;)

Abir Ghosh 1 Jan 19, 2022
🚀Gev is a lightweight, fast non-blocking TCP network library based on Reactor mode. Support custom protocols to quickly and easily build high-performance servers.

gev 中文 | English gev is a lightweight, fast non-blocking TCP network library based on Reactor mode. Support custom protocols to quickly and easily bui

徐旭 1.4k Jun 26, 2022
A Xray backend framework that can easily support many panels. 一个基于Xray的后端框架,支持V2ay,Trojan,Shadowsocks协议,极易扩展,支持多面板对接

XRayR A Xray backend framework that can easily support many panels. 一个基于Xray的后端框架,支持V2ay,Trojan,Shadowsocks协议,极易扩展,支持多面板对接。 如果您喜欢本项目,可以右上角点个star+watch

null 989 Apr 25, 2022
Easily generate gRPC services in Go ⚡️

Lile is a application generator (think create-react-app, rails new or django startproject) for gRPC services in Go and a set of tools/libraries. The p

Lile 1.4k Jun 21, 2022
Easily and securely send things from one computer to another :crocodile: :package:

This project is supported by: croc is a tool that allows any two computers to simply and securely transfer files and folders. AFAIK, croc is the only

Zack 19.8k Jun 26, 2022
Talk, easily.

Quik.do v0.1.0 talk, easily. Note: This project is heavily under development. IT IS NOT PRODUCTION READY YET. DO NOT USE IT. What Quik.do is a video c

Bora Tanrıkulu 110 Jun 11, 2022
Easily increment 📶 a multi-language 🔱 project version

version-bump Have you ever made a mistake incrementing a project version? Do you have multiple files to update the version at? I was always forgetting

Anton Yurchenko 7 Mar 13, 2022
Switch git user easily with ssh identity.

gitusr A cli tool to easily manage multiple git users and their ssh identity. Add a new git user to gitusr config. Delete a git user from gitusr confi

Ahmed waleed 4 Aug 22, 2021
A server that proxies requests and uses fhttp & my fork of CycleTLS to modify your clienthello and prevent your requests from being fingerprinted.

TLS-Fingerprint-API A server that proxies requests and uses my fork of CycleTLS & fhttp (fork of net/http) to prevent your requests from being fingerp

null 139 Jun 17, 2022