{"id":153,"date":"2010-02-28T22:29:28","date_gmt":"2010-02-28T20:29:28","guid":{"rendered":"http:\/\/blog.openmediavault.org\/?p=153"},"modified":"2018-05-25T11:01:42","modified_gmt":"2018-05-25T09:01:42","slug":"finished-rsync-service-implementation","status":"publish","type":"post","link":"https:\/\/www.openmediavault.org\/?p=153","title":{"rendered":"Finished Rsync service implementation"},"content":{"rendered":"<p>This weekend i finished to implement the Rsync service. OpenMediaVault will act as Rsync server if this is enabled. Also scheduled Rsync jobs are supported which can be local or remote, where remote also support the push and pull modes. The user permission thing is a little bit tricky for Rsync modules when acting as a server, but i think i&#8217;ve found a good solution where everybody will be happy. If a rsync server module is read\/write enabled only users with read\/write and read-only permissions are allowed to contact the module if this is not public\/anonymous. If the module is write-only then only users with read\/write permissions are allowed to use this module.<\/p>\n<p><a href=\"http:\/\/blog.openmediavault.org\/wp-content\/uploads\/2010\/02\/1267383955063.png\" data-rel=\"lightbox-gallery-ONabbzi7\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-154\" title=\"1267383955063\" src=\"http:\/\/blog.openmediavault.org\/wp-content\/uploads\/2010\/02\/1267383955063-300x257.png\" alt=\"\" width=\"300\" height=\"257\" srcset=\"https:\/\/www.openmediavault.org\/wp-content\/uploads\/2010\/02\/1267383955063-300x257.png 300w, https:\/\/www.openmediavault.org\/wp-content\/uploads\/2010\/02\/1267383955063.png 857w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p><a href=\"http:\/\/blog.openmediavault.org\/wp-content\/uploads\/2010\/02\/1267383996382.png\" data-rel=\"lightbox-gallery-ONabbzi7\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-155\" title=\"1267383996382\" src=\"http:\/\/blog.openmediavault.org\/wp-content\/uploads\/2010\/02\/1267383996382-300x231.png\" alt=\"\" width=\"300\" height=\"231\" srcset=\"https:\/\/www.openmediavault.org\/wp-content\/uploads\/2010\/02\/1267383996382-300x231.png 300w, https:\/\/www.openmediavault.org\/wp-content\/uploads\/2010\/02\/1267383996382.png 838w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a> <a href=\"http:\/\/blog.openmediavault.org\/wp-content\/uploads\/2010\/02\/1267384008362.png\" data-rel=\"lightbox-gallery-ONabbzi7\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-158\" title=\"1267384008362\" src=\"http:\/\/blog.openmediavault.org\/wp-content\/uploads\/2010\/02\/1267384008362-300x231.png\" alt=\"\" width=\"300\" height=\"231\" srcset=\"https:\/\/www.openmediavault.org\/wp-content\/uploads\/2010\/02\/1267384008362-300x231.png 300w, https:\/\/www.openmediavault.org\/wp-content\/uploads\/2010\/02\/1267384008362.png 838w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>Thanks to the ability to execute commands asynchronously it is also possible to run a job from within the WebUI. For those of you that are interested how it works: There are several RPC methods (start\/stop\/content) to manage the async command execution and displaying the command output in the WebUI. It was a little bit difficult to find the best implementation because i did not want to give away sensible informations about the command from the backend to the WebUI, on the other hand is should be easy and clear to understand and use. At the end a token (currently the pid of the command) is used to identify the async running command in a RPC call. But stop, there are some additional security checks in the backend that ensure that a RPC can not be used to stop any running command on the server. The pid is used as key to access a structure with all necessary informations which is stored in session. So it is not possible to use this feature to attack the system.<\/p>\n<p><a href=\"http:\/\/blog.openmediavault.org\/wp-content\/uploads\/2010\/02\/1267384160296.png\" data-rel=\"lightbox-gallery-ONabbzi7\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-156\" title=\"1267384160296\" src=\"http:\/\/blog.openmediavault.org\/wp-content\/uploads\/2010\/02\/1267384160296-300x190.png\" alt=\"\" width=\"300\" height=\"190\" srcset=\"https:\/\/www.openmediavault.org\/wp-content\/uploads\/2010\/02\/1267384160296-300x190.png 300w, https:\/\/www.openmediavault.org\/wp-content\/uploads\/2010\/02\/1267384160296.png 645w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>This weekend i finished to implement the Rsync service. OpenMediaVault will act as Rsync server if this is enabled. Also scheduled Rsync jobs are supported which can be local or remote, where remote also support the push and pull modes. The user permission thing is a little bit tricky for Rsync modules when acting as &#8230; <a title=\"Finished Rsync service implementation\" class=\"read-more\" href=\"https:\/\/www.openmediavault.org\/?p=153\" aria-label=\"Read more about Finished Rsync service implementation\">Read more<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-153","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"volker\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.openmediavault.org\/?p=153\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.openmediavault.org\\\/?p=153#article\",\"name\":\"Finished Rsync service implementation | openmediavault\",\"headline\":\"Finished Rsync service implementation\",\"author\":{\"@id\":\"https:\\\/\\\/www.openmediavault.org\\\/?author=2#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/www.openmediavault.org\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"http:\\\/\\\/blog.openmediavault.org\\\/wp-content\\\/uploads\\\/2010\\\/02\\\/1267383955063-300x257.png\",\"@id\":\"https:\\\/\\\/www.openmediavault.org\\\/?p=153\\\/#articleImage\"},\"datePublished\":\"2010-02-28T22:29:28+02:00\",\"dateModified\":\"2018-05-25T11:01:42+02:00\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.openmediavault.org\\\/?p=153#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.openmediavault.org\\\/?p=153#webpage\"},\"articleSection\":\"News\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.openmediavault.org\\\/?p=153#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.openmediavault.org\\\/#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.openmediavault.org\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.openmediavault.org\\\/?cat=4#listItem\",\"name\":\"News\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.openmediavault.org\\\/?cat=4#listItem\",\"position\":2,\"name\":\"News\",\"item\":\"https:\\\/\\\/www.openmediavault.org\\\/?cat=4\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.openmediavault.org\\\/?p=153#listItem\",\"name\":\"Finished Rsync service implementation\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.openmediavault.org\\\/#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.openmediavault.org\\\/?p=153#listItem\",\"position\":3,\"name\":\"Finished Rsync service implementation\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.openmediavault.org\\\/?cat=4#listItem\",\"name\":\"News\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.openmediavault.org\\\/#organization\",\"name\":\"openmediavault\",\"description\":\"DATA SOVEREIGNTY MADE EASY\",\"url\":\"https:\\\/\\\/www.openmediavault.org\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/www.openmediavault.org\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/header_logo.svg\",\"@id\":\"https:\\\/\\\/www.openmediavault.org\\\/?p=153\\\/#organizationLogo\",\"width\":330,\"height\":42},\"image\":{\"@id\":\"https:\\\/\\\/www.openmediavault.org\\\/?p=153\\\/#organizationLogo\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.openmediavault.org\\\/?author=2#author\",\"url\":\"https:\\\/\\\/www.openmediavault.org\\\/?author=2\",\"name\":\"volker\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.openmediavault.org\\\/?p=153#webpage\",\"url\":\"https:\\\/\\\/www.openmediavault.org\\\/?p=153\",\"name\":\"Finished Rsync service implementation | openmediavault\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.openmediavault.org\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.openmediavault.org\\\/?p=153#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/www.openmediavault.org\\\/?author=2#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/www.openmediavault.org\\\/?author=2#author\"},\"datePublished\":\"2010-02-28T22:29:28+02:00\",\"dateModified\":\"2018-05-25T11:01:42+02:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.openmediavault.org\\\/#website\",\"url\":\"https:\\\/\\\/www.openmediavault.org\\\/\",\"name\":\"openmediavault\",\"description\":\"DATA SOVEREIGNTY MADE EASY\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.openmediavault.org\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Finished Rsync service implementation | openmediavault","description":"","canonical_url":"https:\/\/www.openmediavault.org\/?p=153","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.openmediavault.org\/?p=153#article","name":"Finished Rsync service implementation | openmediavault","headline":"Finished Rsync service implementation","author":{"@id":"https:\/\/www.openmediavault.org\/?author=2#author"},"publisher":{"@id":"https:\/\/www.openmediavault.org\/#organization"},"image":{"@type":"ImageObject","url":"http:\/\/blog.openmediavault.org\/wp-content\/uploads\/2010\/02\/1267383955063-300x257.png","@id":"https:\/\/www.openmediavault.org\/?p=153\/#articleImage"},"datePublished":"2010-02-28T22:29:28+02:00","dateModified":"2018-05-25T11:01:42+02:00","inLanguage":"en-US","mainEntityOfPage":{"@id":"https:\/\/www.openmediavault.org\/?p=153#webpage"},"isPartOf":{"@id":"https:\/\/www.openmediavault.org\/?p=153#webpage"},"articleSection":"News"},{"@type":"BreadcrumbList","@id":"https:\/\/www.openmediavault.org\/?p=153#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/www.openmediavault.org\/#listItem","position":1,"name":"Home","item":"https:\/\/www.openmediavault.org\/","nextItem":{"@type":"ListItem","@id":"https:\/\/www.openmediavault.org\/?cat=4#listItem","name":"News"}},{"@type":"ListItem","@id":"https:\/\/www.openmediavault.org\/?cat=4#listItem","position":2,"name":"News","item":"https:\/\/www.openmediavault.org\/?cat=4","nextItem":{"@type":"ListItem","@id":"https:\/\/www.openmediavault.org\/?p=153#listItem","name":"Finished Rsync service implementation"},"previousItem":{"@type":"ListItem","@id":"https:\/\/www.openmediavault.org\/#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/www.openmediavault.org\/?p=153#listItem","position":3,"name":"Finished Rsync service implementation","previousItem":{"@type":"ListItem","@id":"https:\/\/www.openmediavault.org\/?cat=4#listItem","name":"News"}}]},{"@type":"Organization","@id":"https:\/\/www.openmediavault.org\/#organization","name":"openmediavault","description":"DATA SOVEREIGNTY MADE EASY","url":"https:\/\/www.openmediavault.org\/","logo":{"@type":"ImageObject","url":"https:\/\/www.openmediavault.org\/wp-content\/uploads\/2025\/10\/header_logo.svg","@id":"https:\/\/www.openmediavault.org\/?p=153\/#organizationLogo","width":330,"height":42},"image":{"@id":"https:\/\/www.openmediavault.org\/?p=153\/#organizationLogo"}},{"@type":"Person","@id":"https:\/\/www.openmediavault.org\/?author=2#author","url":"https:\/\/www.openmediavault.org\/?author=2","name":"volker"},{"@type":"WebPage","@id":"https:\/\/www.openmediavault.org\/?p=153#webpage","url":"https:\/\/www.openmediavault.org\/?p=153","name":"Finished Rsync service implementation | openmediavault","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/www.openmediavault.org\/#website"},"breadcrumb":{"@id":"https:\/\/www.openmediavault.org\/?p=153#breadcrumblist"},"author":{"@id":"https:\/\/www.openmediavault.org\/?author=2#author"},"creator":{"@id":"https:\/\/www.openmediavault.org\/?author=2#author"},"datePublished":"2010-02-28T22:29:28+02:00","dateModified":"2018-05-25T11:01:42+02:00"},{"@type":"WebSite","@id":"https:\/\/www.openmediavault.org\/#website","url":"https:\/\/www.openmediavault.org\/","name":"openmediavault","description":"DATA SOVEREIGNTY MADE EASY","inLanguage":"en-US","publisher":{"@id":"https:\/\/www.openmediavault.org\/#organization"}}]}},"aioseo_meta_data":{"post_id":"153","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"location":null,"local_seo":null,"limit_modified_date":false,"ai":null,"created":"2020-12-24 17:42:50","updated":"2022-09-20 17:19:00","breadcrumb_settings":null,"seo_analyzer_scan_date":null,"focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.openmediavault.org\/\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.openmediavault.org\/?cat=4\" title=\"News\">News<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tFinished Rsync service implementation\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/www.openmediavault.org\/"},{"label":"News","link":"https:\/\/www.openmediavault.org\/?cat=4"},{"label":"Finished Rsync service implementation","link":"https:\/\/www.openmediavault.org\/?p=153"}],"_links":{"self":[{"href":"https:\/\/www.openmediavault.org\/index.php?rest_route=\/wp\/v2\/posts\/153","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.openmediavault.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.openmediavault.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.openmediavault.org\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.openmediavault.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=153"}],"version-history":[{"count":8,"href":"https:\/\/www.openmediavault.org\/index.php?rest_route=\/wp\/v2\/posts\/153\/revisions"}],"predecessor-version":[{"id":160,"href":"https:\/\/www.openmediavault.org\/index.php?rest_route=\/wp\/v2\/posts\/153\/revisions\/160"}],"wp:attachment":[{"href":"https:\/\/www.openmediavault.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=153"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.openmediavault.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=153"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.openmediavault.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=153"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}