Giter Club home page Giter Club logo

stastnypremysl / rfstools Goto Github PK

View Code? Open in Web Editor NEW
1.0 2.0 0.0 165 KB

Mirror of https://gitlab.com/rfs4/rfstools - Remote file system tools for data manipulation between remote /and local host/ (cp, mv, ls, rm,..) written in Python3. This package provides you executables pcp, pls, pmv,..., which enables you to do painless data operations.

License: GNU General Public License v3.0

Python 95.37% Shell 4.63%
ftp python fs ftps sftp smb command-line-tool

rfstools's Introduction

rfstools

Remote file system tools for data manipulation between remote and local host (cp, mv, ls, rm,..) written in Python3. This package provides you executables pcp, pls, pmv,..., which enables you to do painless data operations on remote/between remote and local host using SFTP/FTP/FTPS/SMB12(SMB version 1 or 2)/SMB23(SMB version 2 or 3)/FS(local file system) protocols.

Furthermore, you can enable data re-encoding during data transfer (CRLF/LF and character re-encoding).

Installation

The rfstools tool can be installed using pip from the PyPI public registry.

pip install rfstools

Documentation

The documentation can be found in autogenerated repository rfstools-docs.

Configuration

Arguments can be passed to rfstools commands in multiple ways - configuration file, environment variable, and standard command line argument.

If an argument is specified in more than one place, then the command line argument overrides the environment variable which overrides the config file value which overrides the default value.

Arguments that start with '--' can be set in a config file - /etc/rfstools.conf or ~/.rfstools.conf or specified via -c. Config file syntax allows: key=value, flag=true, stuff=[a,b,c] (for details, see syntax at https://goo.gl/R74nmi).

Details about concrete commands can be found in rfstools-docs/commands.

Examples

In further subchapters, there are examples of solving some of the basic tasks using this tool. Only the first chapter contains the configuration file setup...in the others, it can be done analogically.

Copy a file from a SMB2 server to the local host

First of all, we need to set up the configuration file.

cat > /some-path/rfstools.conf << EOF
connection-type=SMB12

# For SMB we always need to say, which remote folder we use.
service-name=special-folder

host=speciserver-smb.cz
username=speciman

password=mysecret

EOF

After that, we set up an environment variable RFSTOOLS_CONFIG, so the tool knows, which configuration file should it use.

export RFSTOOLS_CONFIG=/some-path/rfstools.conf

Finally, we run

pcp r:/some-path2/file ./

Downloading all files from remote folder /etc ending with .conf

pcp r:/etc/*.conf ./

Listing all subfolders in some folder

pls r:/some-path/*/

Recursive copying of remote folder to local

pcp -r r:/folder ./

Moving all remote temporary files in /tmp to local host tmp

pmv r:/tmp/* /tmp

Cross-copying (using local and remote files) to the remote host

pcp r:/file1 /file2 r:/target-folder

Deletion of all remote files (with directories) ending with .tmp

prm -r r:/**/*.tmp

Copying greped files to the local host

pls -p r:/some-path | grep "^.*/SOME_REGEX$" | xargs pcp -t /target-folder 

Recoding from CRLF to LF while copying from remote host to local host

export RFSTOOLS_REMOTE_CRLF=TRUE
pcp -X r:/crlf-file ./lf-file

Recoding from local UTF8 file to UTF16 remote encoding while copying

export RFSTOOLS_REMOTE_ENCODING=UTF16
pcp -X ./utf8-file r:/utf16-file

rfstools's People

Contributors

stastnypremysl avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.