{ "info": { "author": "Jeremy Andrews", "author_email": "jeremy@tag1consulting.com", "bugtrack_url": null, "classifiers": [], "description": "==========\nSuckleSync\n==========\nSucklesync allows you to subscribe to one or more remote directories,\nusing rsync to synchronize the remote directories locally. It only\nsynchronizes directories that don't contain actively changing files.\nThis prevents synchronizing corrupt files and then re-synchronizing\nthem later when the remote changes are complete.\n\nSucklesync (currently) requires Python 2.\n\n============\nInstallation\n============\nRun:\n pip install sucklesync\n\nOr:\n sudo ./setup.py install\n\nTo configure sucklesync, save the configuration template to any of\nthe following paths, as preferred for your local configuration:\n * /etc/sucklesync.cfg\n * /usr/local/etc/sucklesync.cfg\n * ~/.sucklesync.cfg\n * ./sucklesync.cfg\n\n=============\nConfiguration\n=============\nIn /usr/local/etc/sucklesync.cfg or /etc/sucklesync.cfg define the\nfollowing sections. (Use template.sucklesync.cfg from this package\nfor a quick starting place.)\n\n- [Sucklepaths]\n\nDefine one or more sucklepath pairs. Every pair requires a matching\nsource and destination, and numbers must be incremented sequentally.\nSucklesync currently requires the source to be remote, and the\ndestination to be local. For example:\n\n\t[Sucklepaths]\n\tsource1 = /the/remote/path\n\tdestination1 = /the/local/path\n\tsource2 = /another/remote/path\n\tdestination2 = /another/local/path\n\n- [Local]\n\nSucklesync needs to know the full path to rsync and ssh on your\nlocal server. It also currently assumes the \"-a --verbose\" flags\non rsync, it is not recommended you change this or things will\nvery likely break.\n\nBy default, rsync will delete local files that don't exist on the\nremote server. To disable this feature, set \"delete = no\".\n\n\t[Local]\n\trsync = /usr/bin/rsync\n\trsync_flags = -a --delete\n\tssh = /usr/bin/ssh\n\tssh_flags = -C\n\tdelete = yes\n\n- [Remote]\n\nSucklesync needs to know the full path to find on your remote\nserver. Don't change the find_flags unless you're certain your\nnew flags will work with Sucklesync's assumptions (learned through\nreading the code). By default, it builds a list of directories\nthat have not been modified in the past 5 minutes, and syncs them\none at a time.\n\nKey-based ssh access is currently required to the remote host\nspecified. The ssh_timeout is specified in seconds.\n\n\t[Remote]\n\tfind = /usr/bin/find\n\tfind_flags = ! -mmin -5 -print\n\thostname = example.com\n\tssh_timeout = 5\n\n- [Logging]\n\nAs Sucklesync runs as a daemon, it writes to a log and maintains a\npidfile to track the running process. Whatever user you run\nsucklesync as will require read-write access to both files.\n\n\t[Logging]\n\tfilename = /var/log/sucklesync/sucklesync.log\n\tpidfile = /var/run/sucklesync.pid\n\tlevel = WARNING\n\n- [Email]\n\nTBD: Not yet implemented.\n\n\t[Email]\n\tenabled = yes\n\t; Email addresses can optionally include a human readable name, just addresses,\n\t; or a combination. For example:\n\t; NAME ONE | ADDRESS1, NAME TWO | ADDRESS2, ADDRESS3\n\tto = User 1|user1@example.com, User 2|user2@example.com, user3@example.com\n\tfrom = SuckleSync|sucklesync@example.com\n\tsmtp_hostname = example.com\n\tsmtp_port = 587\n\t; Supported smtp modes are: default, ssl, tls\n\tsmtp_mode = tls\n\tsmtp_username = username\n\tsmtp_password = password\n\n- [Frequency]\n\nSucklesync polls a remote server looking for new files to sync that haven't\nchanged recently. If it hasn't found new files recently, it polls less\nfrequently. If it has found new files recently, it polls more frequently.\n\nIt will poll at least minimum_poll_delay seconds for new files when it's\nnot actively syncing. If no new files are found, it will increment the\npoll_delay by minimum_poll_delay until it reaches the maximum_poll_delay.\n\n\t[Frequency]\n\tminimum_poll_delay = 60\n\tmaximum_poll_delay = 900\n", "description_content_type": null, "docs_url": null, "download_url": "https://github.com/jeremyandrews/sucklesync/archive/v0.3.8-alpha.tar.gz", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/jeremyandrews/sucklesync", "keywords": "", "license": "2-clause BSD", "maintainer": "", "maintainer_email": "", "name": "sucklesync", "package_url": "https://pypi.org/project/sucklesync/", "platform": "", "project_url": "https://pypi.org/project/sucklesync/", "project_urls": { "Download": "https://github.com/jeremyandrews/sucklesync/archive/v0.3.8-alpha.tar.gz", "Homepage": "https://github.com/jeremyandrews/sucklesync" }, "release_url": "https://pypi.org/project/sucklesync/0.3.8/", "requires_dist": null, "requires_python": "", "summary": "A wrapper around rsync to simplify continuous sychnronization of remote directories", "version": "0.3.8" }, "last_serial": 3035947, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "581c95365507f8216fa19433bdb70504", "sha256": "937a6931e81129de88856f267ce3dbb634e203c55d807ee61e5dbe447f00e935" }, "downloads": -1, "filename": "sucklesync-0.1.0.tar.gz", "has_sig": false, "md5_digest": "581c95365507f8216fa19433bdb70504", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7913, "upload_time": "2017-07-01T19:27:09", "url": "https://files.pythonhosted.org/packages/44/ad/3e7f1fbd933e842a8221a9ba27a0542d7b413744d1a586b68bafdbc8684c/sucklesync-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "389b6254e9735f952106930014423529", "sha256": "258e982abd09600b8ac170b32fbcc949ebe25656b8afc8fce0159b8dfaa01937" }, "downloads": -1, "filename": "sucklesync-0.2.0.tar.gz", "has_sig": false, "md5_digest": "389b6254e9735f952106930014423529", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10648, "upload_time": "2017-07-02T06:47:44", "url": "https://files.pythonhosted.org/packages/75/48/d0c41f33c8d54061943e2c598bf82601bd9682a005d2244b5c8ccd423b6a/sucklesync-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "3d47d220df3fc9a4d94b29d0afa77377", "sha256": "ae1fde6914c4bfeb41afd501a1dcf7f5f82cacad513d6107e51d6620ebef0948" }, "downloads": -1, "filename": "sucklesync-0.3.0.tar.gz", "has_sig": false, "md5_digest": "3d47d220df3fc9a4d94b29d0afa77377", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11726, "upload_time": "2017-07-02T15:36:50", "url": "https://files.pythonhosted.org/packages/45/7a/2a200b7979dbe44b736fa4728ab06c4a3a4ac94ce49f5ed33d197f0e7d09/sucklesync-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "9b3a9a6c2becf378a09b456c20568599", "sha256": "d22781f5900e3b017fe69cfd4b5b25a1bd3ac2a1df7e02b17fef107b91a220c4" }, "downloads": -1, "filename": "sucklesync-0.3.1.tar.gz", "has_sig": false, "md5_digest": "9b3a9a6c2becf378a09b456c20568599", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11847, "upload_time": "2017-07-03T05:43:46", "url": "https://files.pythonhosted.org/packages/84/67/ece3833b30aad9136e94fb37d6e3e91376241d675d4be28aac647e92c83e/sucklesync-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "4fbdcc5a602877be7971b2bd8462540a", "sha256": "b5ad3cabe5c2505a2df16139edc322f9000767ea0e544fa5572e648d344b9869" }, "downloads": -1, "filename": "sucklesync-0.3.2.tar.gz", "has_sig": false, "md5_digest": "4fbdcc5a602877be7971b2bd8462540a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11859, "upload_time": "2017-07-04T05:30:48", "url": "https://files.pythonhosted.org/packages/a8/d5/de00a0827f1218baa5ffdf241e02bab2a53870c0415df2397eda4c4b5fe5/sucklesync-0.3.2.tar.gz" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "742ae259e8bd641ee73585710c77c03a", "sha256": "41889685a10bf5d2b3aca9b19a1965cee559075ef53e37728e31ca38ff1e9098" }, "downloads": -1, "filename": "sucklesync-0.3.3.tar.gz", "has_sig": false, "md5_digest": "742ae259e8bd641ee73585710c77c03a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11858, "upload_time": "2017-07-04T06:31:41", "url": "https://files.pythonhosted.org/packages/ea/ea/7b90d01291461984739fff8dab18ca4dce580e9e0caa123d52576b78d5ef/sucklesync-0.3.3.tar.gz" } ], "0.3.4": [ { "comment_text": "", "digests": { "md5": "129e812c15e658ff4a59164590799995", "sha256": "08d5c411bb574ff4296eece10fd1eb874ac6e036584e360b40a18d61eba4e289" }, "downloads": -1, "filename": "sucklesync-0.3.4.tar.gz", "has_sig": false, "md5_digest": "129e812c15e658ff4a59164590799995", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11873, "upload_time": "2017-07-05T08:02:50", "url": "https://files.pythonhosted.org/packages/cc/22/c886f3aa8608f0284f272d4fc33daaade039ab532f60c27b21f4763fc7d1/sucklesync-0.3.4.tar.gz" } ], "0.3.5": [ { "comment_text": "", "digests": { "md5": "6d13fb6185e6a5a6b33c55c15e7ff82b", "sha256": "e5fae02c3d9f3f11a668809888461dac52d7ebc6802ca7d007c7a102fe1fc7ad" }, "downloads": -1, "filename": "sucklesync-0.3.5.tar.gz", "has_sig": false, "md5_digest": "6d13fb6185e6a5a6b33c55c15e7ff82b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11861, "upload_time": "2017-07-05T15:34:14", "url": "https://files.pythonhosted.org/packages/61/fb/34f2da49382b70efe67e7d54d73faa82ef0b159b1b696d96331d410849d0/sucklesync-0.3.5.tar.gz" } ], "0.3.6": [ { "comment_text": "", "digests": { "md5": "00808d90f63996db0cdffc929e94d3de", "sha256": "ec3558f0bb58b4b7291f5f5881fd4e797796e14e95e03099a82daa16f59c398c" }, "downloads": -1, "filename": "sucklesync-0.3.6.tar.gz", "has_sig": false, "md5_digest": "00808d90f63996db0cdffc929e94d3de", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11957, "upload_time": "2017-07-08T07:55:38", "url": "https://files.pythonhosted.org/packages/f8/dd/3fc9f9ae10990b256f20891e8dafada5d82214c56a16e37874564f18c1ed/sucklesync-0.3.6.tar.gz" } ], "0.3.7": [ { "comment_text": "", "digests": { "md5": "f79bd5451f349233dad47fa4a90e33e0", "sha256": "df5cdad7dd971b5eb7429320298336a64edb8b3f1c447142dbe7cfd05b47a14a" }, "downloads": -1, "filename": "sucklesync-0.3.7.tar.gz", "has_sig": false, "md5_digest": "f79bd5451f349233dad47fa4a90e33e0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12060, "upload_time": "2017-07-09T07:32:33", "url": "https://files.pythonhosted.org/packages/51/59/87e34f39db9edea8012e2be62d2cf8132c0032a7f4a8adafb6b60453d415/sucklesync-0.3.7.tar.gz" } ], "0.3.8": [ { "comment_text": "", "digests": { "md5": "28de9aff8ad9d66bf97dd5b43d12152e", "sha256": "8facaadb898885a28b1b6b6be1236402ddc4012f4ed060a6d3b150b8d67c0dd4" }, "downloads": -1, "filename": "sucklesync-0.3.8.tar.gz", "has_sig": false, "md5_digest": "28de9aff8ad9d66bf97dd5b43d12152e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12256, "upload_time": "2017-07-20T05:57:21", "url": "https://files.pythonhosted.org/packages/27/ce/89227cc3ca7db940a38c5f82a5795b7e1eb246416b2e6d110fb5cbdd0b12/sucklesync-0.3.8.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "28de9aff8ad9d66bf97dd5b43d12152e", "sha256": "8facaadb898885a28b1b6b6be1236402ddc4012f4ed060a6d3b150b8d67c0dd4" }, "downloads": -1, "filename": "sucklesync-0.3.8.tar.gz", "has_sig": false, "md5_digest": "28de9aff8ad9d66bf97dd5b43d12152e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12256, "upload_time": "2017-07-20T05:57:21", "url": "https://files.pythonhosted.org/packages/27/ce/89227cc3ca7db940a38c5f82a5795b7e1eb246416b2e6d110fb5cbdd0b12/sucklesync-0.3.8.tar.gz" } ] }