Remote file system tools for data manipulation between remote /and local host/ (cp, mv, ls, rm,..)
Project description
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
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file rfstools-1.8.3.tar.gz
.
File metadata
- Download URL: rfstools-1.8.3.tar.gz
- Upload date:
- Size: 44.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.11.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a42fd2332673e7db30b6fe0b9d0db327b2995cbe8d2221acb7ef675aec634a2a |
|
MD5 | 0f3648af25b0eb4a67af10762874b534 |
|
BLAKE2b-256 | fa93a2d281a505cdee01e1b2fff87e5e83671e346b8f38b1bc12b6c213993fd3 |
File details
Details for the file rfstools-1.8.3-py3-none-any.whl
.
File metadata
- Download URL: rfstools-1.8.3-py3-none-any.whl
- Upload date:
- Size: 43.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.11.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b82aebb709d633d702105b7cf8cf855daeea4b9ccc510f6df0554238860ca991 |
|
MD5 | 5e7ec9ab2ddfac6c86f7c8bd223e5ffd |
|
BLAKE2b-256 | d603193f5809c904ce666add99a23770fd8b522ee784df0e5a4562eda92f8229 |