Safecopy
--------
Safecopy syncronizes drives and directories very carefully. Like rsync, without rsync's insecure default metadata check. Securely copies to and from remote filesystems through sshfs.
Description
-----------
Reliably Synchronize Drives and Directories
Safecopy synchronizes drives and directories, and carefully verifies the copy. When you are copying massive files or large directory trees, it's important to know that every file was copied accurately. Safecopy verifies byte-by-byte, or you can choose a quick metadata check.
Install
-------
pip3 install safecopy
Updates
-------
All future updates will only be available from:
git clone https://codeberg.org/topdevpros/safecopy.git
How it Works
------------
safecopy SOURCE ... DESTINATION
It's just like the standard cp command. You can have as many source paths as you like. The destination path is always last.
Safecopy gives you a lot of control:
-h, --help Show this help message
--verbose Show progress
--quick Only update files if the size or last modified time is different
--dryrun Show what would be done, but don't do anything
--delete Delete all files that are not in the source before copying any files
--nowarn No warnings
--test Run tests
--exclude EXCLUDE_PATH... Exclude the files or directories (comma separated)
--verify Verify copies
--persist Continue on errors, except verify error
--retries RETRIES How many times to retry a failed copy. Default is not to retry
If you need the rsync protocol run "pip3 install pyrsync2". But it's almost always better to replace rsync with safecopy and sshfs.
Error messages
Warning: setuid/setgid bit set on ...
Safecopy detects when the setuid/setgid bit is set. This is almost always a serious security risk. To remove the bit:
chmod -s PATH
Raw data
{
"_id": null,
"home_page": "https://codeberg.org/topdevpros/safecopy",
"name": "safecopy",
"maintainer": "topdevpros",
"docs_url": null,
"requires_python": ">=3.5",
"maintainer_email": "",
"keywords": "rsync file-copy",
"author": "TopDevPros",
"author_email": "",
"download_url": "https://files.pythonhosted.org/packages/c8/1f/f3fc4616a2aa57dd831b9556f77bfdc834706201fac4b424828077bea24d/safecopy-1.3.4.tar.gz",
"platform": null,
"description": "Safecopy\n--------\n\nSafecopy syncronizes drives and directories very carefully. Like rsync, without rsync's insecure default metadata check. Securely copies to and from remote filesystems through sshfs.\n\nDescription\n-----------\n\nReliably Synchronize Drives and Directories\n\nSafecopy synchronizes drives and directories, and carefully verifies the copy. When you are copying massive files or large directory trees, it's important to know that every file was copied accurately. Safecopy verifies byte-by-byte, or you can choose a quick metadata check.\n\n\nInstall\n-------\n\npip3 install safecopy\n\n\nUpdates\n-------\n\nAll future updates will only be available from:\n\n git clone https://codeberg.org/topdevpros/safecopy.git\n\n\nHow it Works\n------------\n\n safecopy SOURCE ... DESTINATION\n\nIt's just like the standard cp command. You can have as many source paths as you like. The destination path is always last.\n\nSafecopy gives you a lot of control:\n -h, --help Show this help message\n --verbose Show progress\n --quick Only update files if the size or last modified time is different\n --dryrun Show what would be done, but don't do anything\n --delete Delete all files that are not in the source before copying any files\n --nowarn No warnings\n --test Run tests\n --exclude EXCLUDE_PATH... Exclude the files or directories (comma separated)\n --verify Verify copies\n --persist Continue on errors, except verify error\n --retries RETRIES How many times to retry a failed copy. Default is not to retry\n\nIf you need the rsync protocol run \"pip3 install pyrsync2\". But it's almost always better to replace rsync with safecopy and sshfs.\nError messages\n\nWarning: setuid/setgid bit set on ...\n\nSafecopy detects when the setuid/setgid bit is set. This is almost always a serious security risk. To remove the bit:\n\n chmod -s PATH\n",
"bugtrack_url": null,
"license": "GNU General Public License v3 (GPLv3)",
"summary": "Simple secure file copy. Alternative to rsync.",
"version": "1.3.4",
"project_urls": {
"Download": "https://codeberg.org/topdevpros/safecopy.git",
"Homepage": "https://codeberg.org/topdevpros/safecopy",
"Source Code": "https://codeberg.org/topdevpros/safecopy/src/branch/main/source"
},
"split_keywords": [
"rsync",
"file-copy"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "4fa92497c514796ed176f4bea1b2df104185f5c50f8a056cf5e069a7562ca3ba",
"md5": "fc7844c7e347eb6866d29f0e8f9aefdf",
"sha256": "9d500b7b7d0cac9ff2a8f3c81dea75dbd6499b435309946ddb56db749480da1e"
},
"downloads": -1,
"filename": "safecopy-1.3.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "fc7844c7e347eb6866d29f0e8f9aefdf",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.5",
"size": 13151,
"upload_time": "2023-12-31T08:06:38",
"upload_time_iso_8601": "2023-12-31T08:06:38.672977Z",
"url": "https://files.pythonhosted.org/packages/4f/a9/2497c514796ed176f4bea1b2df104185f5c50f8a056cf5e069a7562ca3ba/safecopy-1.3.4-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "c81ff3fc4616a2aa57dd831b9556f77bfdc834706201fac4b424828077bea24d",
"md5": "27eb3c250203214e9dec2cfc8e77ecc6",
"sha256": "3154e7381c2bcb211cfe29cbfd375323f99df4375ee116c9856e11ad989fab4c"
},
"downloads": -1,
"filename": "safecopy-1.3.4.tar.gz",
"has_sig": false,
"md5_digest": "27eb3c250203214e9dec2cfc8e77ecc6",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.5",
"size": 14144,
"upload_time": "2023-12-31T08:06:40",
"upload_time_iso_8601": "2023-12-31T08:06:40.075622Z",
"url": "https://files.pythonhosted.org/packages/c8/1f/f3fc4616a2aa57dd831b9556f77bfdc834706201fac4b424828077bea24d/safecopy-1.3.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-12-31 08:06:40",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": true,
"codeberg_user": "topdevpros",
"codeberg_project": "safecopy",
"lcname": "safecopy"
}